Partiendo de este tip estoy intentando pasarlo a AS 3, pero me funciona muy raro... Le he dado algunas vueltas pero no consigo que funcione bien.
Alguna idea?
Código ActionScript :
//align = bottom;
//esto hara que el punto de centro sea la mitad por si tenemos que reposicionarlo , el punto 1,1
//sera sera siemrpe el punto de en medio de este menú, se la asigno a variables para ser flexible
//por si necesitamos hacer algo con ello
var centerx = 0;
var centery = 0;
//Establecemos el menú de items para saber cuanto tenemos que recorrer para hacer los cálculos
var menucount = 6;
// establecemos de que ancho son los items, para hacerlo dinámico, tomo el ultimo y asigno el ancho
// los items para ser optimos deberian tener la misma anchura
var miwidth = 40;
// establecesmos que espacio entre cada item deseamos
var miborder = 3;
// establecemos la variable inicial en el valor cero, que lelvara el control del ancho del menu
var AnchMen = 0;
//esto hara que cada ves que el menú haga un enterframe se ejecute y tengamos un monitoreo constante
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame (e:Event) : void
{
var AnchMen = 0;
//esta es la parte del tip anterior, con la única diferencia que este acumula en la variable
//AnchMen el ancho del menú
for (var i = 0; i < menucount; i++) {
var xxm = this["btn0" + i].mouseX;
var yym = this["btn0" + i].mouseY;
var xm = Math.sqrt(xxm * xxm + yym * yym);
if (xm < 40) {
this["btn0" + i].scaleX = this["btn0" + i].scaleY += ((2 - xm) - this["btn0" + i].scaleY) / 3;
} else {
this["btn0" + i].scaleX = this["btn0" + i].scaleY += (1 - this["btn0" + i].scaleY) / 3;
}
//esta parte va acumulando el ancho de los elementos
AnchMen += this["btn0" + i].width;
}
//hacemos el calculo total de incremento de los espacios entre elementos del menu mas el espacio de los elementos
AnchMen += (menucount - 1) * miborder;
// Inicializamos las posiciones
// toma el ancho lo divide entre dos y se lo resta al centro garantizando que el menu quede centrado
var xpos = Math.round((centerx - AnchMen) / 2);
// como el primer item no tiene un elemento anterior de donde partir en la funcion se establece el punto de parida
// se hace el calculo del espacio del elemento uno se incrementa y se parte del elemento 2
xpos += Math.round((this["btn0" + 0].width + miborder) / 2);
for (var n = 1; n < menucount; n++) {
x = n - 1;
xpos += (this["btn0" + x].width / 2) + miborder + (this["btn0" + n].width / 2);
this["btn0" + n].x = xpos;
this["btn0" + n].y = centery;
}
//como el elemento uno no ha sido establecido se le resta su ancho menos al elemento 2 para lograr su posición
this["btn0" + 0].x = (this["btn0" + 1].x - this["btn0" + 0].width - miborder);
this["btn0" + 0].y = centery;
}
