13/09/2010, 04:24
|
| | Fecha de Ingreso: septiembre-2010 Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 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;
} |