ActionScript - Enviar un botón al frente con ActionScript 2.0

 
Vista:

Enviar un botón al frente con ActionScript 2.0

Publicado por Pakito (1 intervención) el 26/08/2009 09:59:33
Hola a todos. He hecho un mapa em flash en el que aparecen varios botones. El problema que tengo es que en el estado rollOver aumentan de tamaño para que se lea un texto en el interior y se superponen unos con otros. Quiero hacer que se envíe al frente el botón sobre el que se situe el ratón. He probado lo siguiente ( http://www.kirupa.com/developer/actionscript/swapdepth.htm ):

on (rollOver) {
_root.x += 2;
_root.boton_alicante.swapDepths(_root.x);
}

y no funciona. Tengo entendido que swapDepths sólo funciona con Movie Clips y no con botones, pero encontré esto ( http://board.flashkit.com/board/archive/index.php/t-633615.html ) y he obtenido el resultado que busco, pero tiene un problema: el estado rollOver se muestra contínuamente y no desaparece aunque quite el ratón de encima. Lo he colocado al principio:

Button.prototype.swapDepths = MovieClip.prototype.swapDepths;

Una solución sería convertir los botones en MC pero tengo demasiados botones creados. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cambiar el orden de superposición de botones en función del ratón

Publicado por Alejandro (369 intervenciones) el 26/06/2023 18:36:10
Para cambiar el orden de superposición de los botones en función de la posición del ratón, puedes seguir estos pasos:

1. Convierte los botones en instancias de MovieClip: Como mencionaste que `swapDepths` solo funciona con Movie Clips, necesitarás convertir tus botones en instancias de MovieClip. Aunque mencionas que tienes muchos botones creados, este cambio será necesario para poder utilizar `swapDepths`.

2. Asigna nombres únicos a cada botón convertido: Para poder identificar y trabajar con cada botón individualmente, asegúrate de asignar nombres únicos a cada instancia de MovieClip que representa a tus botones. Por ejemplo, puedes utilizar nombres como "boton1_mc", "boton2_mc", etc.

3. Asigna el código de interacción a cada botón: Para cada instancia de MovieClip (anteriormente botón) que has creado, asigna el código de interacción adecuado para el efecto rollOver. Puedes hacer esto en el escenario o a través del código.

1
2
3
4
5
6
7
8
9
10
11
12
// Ejemplo de código para el rollover de un botón convertido en MovieClip
boton1_mc.addEventListener(MouseEvent.ROLL_OVER, onButtonRollOver);
boton1_mc.addEventListener(MouseEvent.ROLL_OUT, onButtonRollOut);
 
function onButtonRollOver(event:MouseEvent):void {
    var button:MovieClip = MovieClip(event.currentTarget);
    button.parent.setChildIndex(button, button.parent.numChildren - 1); // Mueve el botón al frente
}
 
function onButtonRollOut(event:MouseEvent):void {
    // Código adicional para revertir cualquier cambio o animación realizada en el rollOver
}

Puedes repetir este código para cada botón convertido en MovieClip, asignando los eventos de rollOver y rollOut correspondientes.

Con estos pasos, deberías poder cambiar el orden de superposición de los botones en función de la posición del ratón. Recuerda ajustar los nombres de los botones y realizar cualquier cambio adicional necesario según la estructura y lógica de tu proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar