Comunidad de diseño web y desarrollo en internet online

Borrar Listeners de una clase desde la clase Main en AS3

Citar            
MensajeEscrito el 11 Sep 2010 07:30 pm
Buenas,

Ahora estoy viendo que he cargado de procesos la web que estoy haciendo, había creado diferentes clases, para que me sea más facil gestionar el código pero ahora me encuentro que tengo un montos de listeners sin parar, ya que al hacer removeChild, no elimina los procesos , hay alguna sentencia parecida a stopEventListeners , para las clases que creamos ? y cómo podría llamar a esa función desde el menú Main ?

Por ejemplo,

Creo una clase, que carga 2 fotografias, con 2 listeners en el enter frame , 1 para rotar otro para desplazar.

Creo objeto de esa clase en Main, pasandolo como parametro un XML,

Se genera las 2 fotografias , desde Main le doy a el boton atras, que simplemente hace un removeChild , del Objeto de esa clase, sin embargo veo errores, a causa de los 2 listeners que tenía dicho objeto.

Me podéis guiar un poco ?

Muchas gracias,

Por erone

16 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Sep 2010 09:24 pm
mirate removeEventListener en la ayuda , lo podrias usar tal y como dices crea un metodo stopListeners a tu clase y que esta inernamente remueva el listener , o bien desde fuera de la clase, pero seria mas prolijo por encapsulacion que la propia clase remueva sus listeners, ejemplo sencillo :

Código ActionScript :

package
{
   import flash.display.Sprite;
   import flash.events.Event;
   
   public class CustomClass extends Sprite
   {
      private var _someObject:Sprite;
      
      public function CustomClass()
      {
         //.....//
      }
      
      public function stopListener():void
      {
         //ya sea que el listener este asignado a un objeto
         _someObject.removeEventListener(EventType, handlerFunction);
         //o bien a la misma clase
         this.removeEventListener(EventType, handlerFunction);
      }
   }
}


y la usarias

Código ActionScript :

myCustomClass.stopListener();
removeChild(myCustomClass);
this.nextFrame();


bueno es algo brusco el ejemplo pero es la idea , aunque existen cosas mas complejas como las que usan los fmks.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 11 Sep 2010 11:53 pm
ahora mismo lo pruebo y te digo, muchas gracias.

Por erone

16 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Sep 2010 03:14 pm
La has clavado, tan sólo tenía que hacer algunas funciones públicas y poner la función que me has indicado, muchas gracias. Funciona a la perfección!

Por erone

16 de clabLevel



 

msie8

 

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