Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2010, 04:24
Fran1985
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 1
menu de botones rotativo

Hola a todos! Soy bastante novato con AS3 y me cuesta entender todavia algunas cosas. A ver si alguien me puede ayudar con esto.

Quiero crear un menu de 5 botones que vayan rotando alrededor de una elipse. He seguido algun tutorial para hacerlo, pero me falta saber como puedo usar los botones que tengo en mi biblioteca usando un array, porque lo que podia hacer era duplicar un unico boton, y yo quiero que los botones sean diferentes.

Os dejo mi codigo para que lo veais y me podais decir algo... (no seais malos conmigo que voy un poco perdido XDD)



//creo el array y las variables de la elipse

var arrayBotones:Array = new Array ('Boton','Boton1','Boton2','Boton3','Boton4');

var ejeX:Number = stage.stageWidth / 2;

var ejeY:Number = stage.stageHeight / 2;

var amplitudX:Number = 180;

var amplitudY:Number = 40;

//creo el menu con los objetos del array en disposicion eliptica

for( var i:int = 0; i < arrayBotones.length; i++ ){

var difAngular:Number = ( Math.PI * 2 ) / 5;

var btnmc:MovieClip = new MovieClip();

btnmc.angulo = difAngular * i;

btnmc.x = Math.cos( btnmc.angulo ) * amplitudX + ejeX;

btnmc.y = Math.sin( btnmc.angulo ) * amplitudY + ejeY;

btnmc.addEventListener( Event.ENTER_FRAME, rotar);

addChild( btnmc );

}


var incrAngulo:Number;

//creo la funcion para rotar el menu

function rotar( event:Event ):void {

incrAngulo = ( ( stage.mouseX - ejeX ) / ejeX ) * 0.1;

event.target.angulo += incrAngulo;

event.target.x = Math.cos( event.target.angulo ) * amplitudX + ejeX;

event.target.y = Math.sin( event.target.angulo ) * amplitudY + ejeY;

event.target.scaleX = 1 + Math.sin( event.target.angulo ) * 0.16;

event.target.scaleY = event.target.scaleX;

}