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

No lee bien los listeners

Estas en el tema de No lee bien los listeners en el foro de Flash y Actionscript en Foros del Web. Hola, cuando he abierto hoy en mi kurro flash me ha pasado una cosa muy extraña con el actionscript. Y lo malo es que es ...
  #1 (permalink)  
Antiguo 25/01/2010, 09:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 35
Antigüedad: 14 años, 7 meses
Puntos: 0
No lee bien los listeners

Hola, cuando he abierto hoy en mi kurro flash me ha pasado una cosa muy extraña con el actionscript. Y lo malo es que es un as muy simple.

Os explico: la película tiene 2 fotogramas.

En el primero hay un boton tabla_btn y en el segundo no hay nada.

AS del primer fotograma:

Cita:
stop();
function tablear(e:MouseEvent){
play();
}
tabla_btn.addEventListener(MouseEvent.CLICK, tablear);
AS del segundo fotograma:

Cita:
stop();

function regresar(e:MouseEvent){
prevFrame();
removeEventListener(MouseEvent.CLICK, regresar);
}
stage.addEventListener(MouseEvent.CLICK, regresar);

Como veis, el codigo no puede ser más simple(os aseguro que los he hecho mil veces más complicados y nunca he tenido este problema).
El codigo del primer fotograma ni con nextFrame() ni con gotoAndStop(2) me funcionaba por lo que use play(). De hecho, sólo me funcionaban si comentaba el listener del segundo fotograma.

Pues bien, como digo con play() me va pero el problema es que tan solo me va la primera vez. Es decir, si le doy al boton tabla_btn me va al fotograma 2, haciendo clic en el escenario del segundo fotograma vuelve al 1 pero ya si le intento volver a dar a tabla_btn, ya no me va.

Alguien puede ayudarme, es rarísimo y lo malo es que ya es la segunda vez que me pasa hoy. NO LO ENTIENDO
  #2 (permalink)  
Antiguo 25/01/2010, 11:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 35
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No lee bien los listeners

Me he dado cuenta de que no coge ninguna acción más allá del primer fotograma(ni tan siquiera un alpha=0 o un visible=false) en ningún fla.
Windows se ha actualizado hoy. ¿Podría haberse corrompido alguna librería de flash?
  #3 (permalink)  
Antiguo 25/01/2010, 13:57
Avatar de lucasmoyano  
Fecha de Ingreso: enero-2010
Mensajes: 75
Antigüedad: 14 años, 3 meses
Puntos: 10
Respuesta: No lee bien los listeners

ta mal hecha te falto el void:

stop();
function tablear(e:MouseEvent):void{
play();
}
tabla_btn.addEventListener(MouseEvent.CLICK, tablear);



stop();

function regresar(e:MouseEvent):void{
prevFrame();
removeEventListener(MouseEvent.CLICK, regresar);
}
stage.addEventListener(MouseEvent.CLICK, regresar);


a veces pasa :P
  #4 (permalink)  
Antiguo 26/01/2010, 03:22
 
Fecha de Ingreso: agosto-2009
Mensajes: 35
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No lee bien los listeners

Muchas gracias. No podré saber si era eso. Ya q hoy al encender el ordenador y, como si fuera por arte de magia, ya funcionaban pero bueno. De todas formas gracias.
  #5 (permalink)  
Antiguo 26/01/2010, 08:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 35
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No lee bien los listeners

No obstante, acabo de caer que no podía ser eso ya que poner por ejemplo mc.alpha=0 en el fotograma2 no funcionaba
  #6 (permalink)  
Antiguo 26/01/2010, 09:39
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: No lee bien los listeners

primero lo del void es para que el flash reconozca el tipo de función si es de retorno o no, obvio no esta mal ponerlo

segundo no entiendo muy bien lo que quieres hacer pero talves este ejemplo te sirva


Código PHP:
function tablear(e:MouseEvent):void {
    
this.play();
}
function 
regresar(e:MouseEvent):void {
    
this.prevFrame()    
}
function 
detectFrame(e:Event):void {
    if(
this.currentFrame==1){
        
tabla_btn.removeEventListener(MouseEvent.CLICKregresar);
        
tabla_btn.addEventListener(MouseEvent.CLICKtablear);
        
this.stop()
    }
    if(
this.currentFrame==this.totalFrames){
        
tabla_btn.removeEventListener(MouseEvent.CLICKtablear);
        
tabla_btn.addEventListener(MouseEvent.CLICKregresar);
        
this.stop()
    }
}
stop()
this.addEventListener(Event.ENTER_FRAMEdetectFrame); 
añade y quita eventos dependiendo de te haga falta

ejemplo


http://rapidshare.com/files/341412589/retunr.rar.html
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft

Etiquetas: listeners
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 21:22.