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; }