Estoy desarrollando un menú muy simple en AS3 pero me está dando problemas.
Estoy intentando hacer un simple menú elástico donde la posición de los elementos del menú sea relativa de la posición de los otros.
Con mouse_down sobre un elemento de menú, éste se escala y los demás se recolocan. Con mouse_up, el elemento recupera su tamaño y todos se vuelven a colocar. Los elementos están animados con TweenLite a través de un for que recorre un Array.
Este es el código:
Código ActionScript :
import flash.events.Event;
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
var itemArray:Array = new Array();
var elemento:Object ;
var newdestino:Number;
var i=uint;
var indice:uint;
function crearmenu():void {
for (var n:uint=0; n<4; n++) {
var item:pastilla= new pastilla();
addChild(item);
item.x = 0;
item.y = (item.height+2) * n ;
item.buttonMode = true;
item.addEventListener(MouseEvent.MOUSE_DOWN,expandir);
item.addEventListener(MouseEvent.MOUSE_UP,retraer);
itemArray.push(item);
}
}
function posicionar():void {
for (i=0; i<=itemArray.length; i++) {
elemento=itemArray[i+1];
newdestino = (itemArray[i].y+itemArray[i].height+2);
TweenLite.to(elemento, 1, {x:elemento.x, y:newdestino, ease:Elastic.easeOut});
}
}
function expandir(event:MouseEvent):void {
event.currentTarget.scaleY=2;
posicionar();
}
function retraer(event:MouseEvent):void {
event.currentTarget.scaleY=1;
posicionar();
}
crearmenu();Aquí podeis ver el swf
El asunto es que no se porqué no se recolocan todos a la vez. ¿Puede ser por la asignación de la posición de cada elemento? ¿No debería utlizar un array ni un for?.
Estoy seguro que es una totería pero estoy bloqueado.
Agradezco vuestros comentarios y ayudas.
Un cordial saludo.
RO
