Hola de nuevo, me ha surgido otra complicación que no comprendo. Este código hace que al pulsar sobre un clip bajen los clips que están por debajo de él y al volver a pulsar sobre cualquiera de ellos vuelvan todos a su posición inicial, y así ocurre con la excepción del que está inmediatamente debajo del botón que pulsé primeramente. Ese no se mueve. ¿Sabéis que puede estar pasando?
YA LO RESOLVÍ, TENÍA QUE MOVER EL INCREMENTO DE i. Ya lo corregí en el código.
Gracias.
Código PHP:
//importo la clase Tween
import mx.transitions.Tween;
import mx.transitions.easing.*;
//Creo array con nombres de clips
var clipsArray:Array = Array(mainopt0, mainopt1, mainopt2, mainopt3, mainopt4);
//Creo array con la posicion _y de los clips + la mitad de su altura
var posArray:Array = Array(80, 110, 140, 170, 200);
var intervalId:Number;
//Variable cuyo valor es el número de clips existentes
_global.i = 5;
//Variable que indica si hay visible un submenú
_global.activo = false;
/* ACCIONES DE CLIPS */
mainopt0.onRelease = function (){
_global.e = 1;
if(_global.activo){
intervalId=setInterval(_root,"recolocar", 30);
_global.activo = false;
}else{
intervalId=setInterval(_root,"retraso", 30);
_global.activo = true;
_global.espacio = 100;
}
}
mainopt1.onRelease = function (){
_global.e = 2;
if(_global.activo){
intervalId=setInterval(_root,"recolocar", 30);
_global.activo = false;
}else{
intervalId=setInterval(_root,"retraso", 30);
_global.activo = true;
_global.espacio = 100;
}
}
mainopt2.onRelease = function (){
_global.e = 3;
if(_global.activo){
intervalId=setInterval(_root,"recolocar", 30);
_global.activo = false;
}else{
intervalId=setInterval(_root,"retraso", 30);
_global.activo = true;
_global.espacio = 100;
}
}
mainopt3.onRelease = function (){
_global.e = 4;
if(_global.activo){
intervalId=setInterval(_root,"recolocar", 30);
_global.activo = false;
}else{
intervalId=setInterval(_root,"retraso", 30);
_global.activo = true;
_global.espacio = 100;
}
}
mainopt4.onRelease = function (){
if(_global.activo){
intervalId=setInterval(_root,"recolocar", 30);
_global.activo = false;
}else{
_global.activo = false;
}
}
//Función que desplaza cada clip
function retraso(){
i--
var aumento = posArray[i] + _global.espacio;
var miTween:Tween = new Tween(clipsArray[i], "_y", Regular.easeIn, posArray[i], aumento, 0.9, true);
if(i<=e){
clearInterval(intervalId);
i = e;
}
}
//Función que recoloca cada clip
function recolocar(){
var posActual = posArray[i] + _global.espacio;
var aumento = posActual - _global.espacio;
var miTween:Tween = new Tween(clipsArray[i], "_y", Regular.easeIn, posActual, aumento, 0.9, true);
i++
if(i>4){
clearInterval(intervalId);
}
}