Foros del Web » Creando para Internet » Flash y Actionscript »

Problemas con funciones y array

Estas en el tema de Problemas con funciones y array en el foro de Flash y Actionscript en Foros del Web. Hola a todos! soy nuevo por aquí... y espero que me puedan ayudar. Mi problema es el siguiente: Tengo un menú con varios botones, de ...
  #1 (permalink)  
Antiguo 28/10/2011, 07:28
 
Fecha de Ingreso: octubre-2011
Mensajes: 7
Antigüedad: 13 años
Puntos: 0
Exclamación Problemas con funciones y array

Hola a todos! soy nuevo por aquí... y espero que me puedan ayudar.

Mi problema es el siguiente: Tengo un menú con varios botones, de momento sólo hay cuatro, pero tengo la intención de añadir más. Los tengo en la biblioteca con un nombre de vinculación y los quiero posicionar en forma circular en la escena, y que vayan girando según la posición del ratón. He conseguido posicionarlos correctamente, el problema viene cuando creo la función para que giren. Este es mi código:

import flash.display.MovieClip;
import flash.events.Event;

stop();

//creo un array con los nombres de vinculacion de los botones
var arrayBotones:Array = new Array(boton1,boton2,boton3,boton4);
//leo la cantidad de elementos que tiene el array
var cant:int = arrayBotones.length;
//defino la amplitud de la elipse y la posicion
var amplitudX:Number = 250;
var amplitudY:Number = 60;
var ejeX:Number = stage.stageWidth/2;
var ejeY:Number = (stage.stageHeight/2) + 120;

//defino la distancia en radianes que separa cada boton
var difAngulo:Number = (Math.PI * 2) / cant;


//recorro el array con un bucle for
for(var i:int=0; i < cant; i++){

//asocio el indice del array a una variable cada vez que se lee el bucle y lo asocio a MovieClip
var clase:Class = arrayBotones[i];
var botonCargado:MovieClip = new clase as MovieClip;


//calculo la posicion en la elipse para cada boton
var posicion = difAngulo * i;

//calculo en x e y los pixeles correspondientes a la posicion en radianes
botonCargado.x = Math.cos(posicion) * amplitudX + ejeX;
botonCargado.y = Math.sin(posicion) * amplitudY + ejeY;
botonCargado.addEventListener(Event.ENTER_FRAME, orbitar);

//añado el boton
addChild(botonCargado);
}

function orbitar (event:Event):void{
var incremento:Number = ((stage.mouseX - ejeX) / ejeX) * 0.1;
var angulo:Number;
angulo += incremento;
event.target.x = Math.cos(angulo) * amplitudX + ejeX;
event.target.y = Math.sin(angulo) * amplitudY + ejeY;
}


Cuando se ejecuta la función, todos los botones se ponen en la esquina superior izquierda de la escena. También conseguí que giraran, pero se superponían unos con otros... no había separación entre ellos. ¿Alguien puede indicarme cómo solucionarlo? Le he dado muchas vueltas y ya no se me ocurre qué hacer.
  #2 (permalink)  
Antiguo 28/10/2011, 09:08
 
Fecha de Ingreso: octubre-2011
Mensajes: 7
Antigüedad: 13 años
Puntos: 0
Respuesta: Problemas con funciones y array

Lo solucioné!!! Gracias de todas formas :D

Etiquetas: flash, funciones, botones, clips
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:23.