Comunidad de diseño web y desarrollo en internet online

Evitar que una capa reciba eventos

Citar            
MensajeEscrito el 25 Nov 2007 03:33 pm
Hola

Tengo una duda. Hace poco que estoy aprendiendo flash y siempre me ha pasado que si pongo varios objetos unos encima de otros, todos reciben los eventos cuando pulso (si son botones o movieclips).

No se puede hacer nada para hacer como una ventana modal? es decir, que cuando muestres algo no se puede interactuar con lo que hay debajo?

Gracias.

Por sergiarias

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Nov 2007 12:27 pm
Los gráficos en flash, todos admiten capas.
Si creas un botón todas las capas dentro de botón son sensibles al ratón.
Es por lo que en la mayoría de los casos se utiliza un movieClip como botón, pues es en este caso cuando nosotros controlamos su comportamiento, tanto interno como externo ,. Ejemplo:
Crea un movieClip vacio y ponle nombre de intancia >boton_mc<, dentro de este movieClip dibuja un rectangulo, conviertelo en movieClip y nombralo >rectangulo_mc<, en otra capa de <boton_mc>, dibujas un circulo, lo conviertes en movieClip y lo nombras >circulo_mc<, ahora tenemos un MovieClip con dos capas y en cada una de ellas un movieClip.
Pon este código en la linea de tiempo principal.

Código :

boton_mc.onRollOver = function () {
   boton_mc.circulo_mc._visible = false;
};
//
boton_mc.onRollOut = function () {
   boton_mc.circulo_mc._visible = true;
};
//
boton_mc.onPress = function () {
   boton_mc.rectangulo_mc._xscale = 150;
};
//
boton_mc.onRelease = function () {
   boton_mc.rectangulo_mc._xscale = 100;
};
//

Por antonio_L

161 de clabLevel



Genero:Masculino  

de Linares

firefox
Citar            
MensajeEscrito el 26 Nov 2007 08:54 pm
Creo que no me he explicado bien.

Cogiendo tu código como ejemplo, imagina que pongo el circulo encima del rectángulo. Y que no hago invisible el circulo cuando presiono el rectángulo, sino que tanto al rectángulo como al circulo le aumento la escala x cuando pulso.

Bien, pues mi pregunta es, ¿como puedo hacer para que cuando pulso sobre el circulo, el rectángulo (que se encuentra debajo) no reciba el evento onPress, que es el evento que tenemos en el ejemplo. Vamos, que sea como un objeto solido, tu no puedes atravesar objetos con la mano, no? pues lo mismo en flash pero con el ratón.

Gracias.

Por sergiarias

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Nov 2007 08:22 am
Solo tienes que decirle al script quien quieres que reciba el evento. En este caso >circulo_mc< que está dentro de >boton_mc<:

Código :

boton_mc.circulo_mc.onRollOver = function () {
   this._xscale = 150;
};
//
boton_mc.circulo_mc.onRollOut = function () {
   this._xscale = 100
};

Por antonio_L

161 de clabLevel



Genero:Masculino  

de Linares

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.