Comunidad de diseño web y desarrollo en internet online

Problemas con Eventos personalizados o Custom Events

Citar            
MensajeEscrito el 21 Ene 2014 08:13 pm
Hola como va amigos de Cristalab, estoy necesitando ayuda con eventos personalizados. El tema es el siguiente:

Tengo 3 clases :
a) la clase Main
b) la clase Acciones
c) la clase Eventos

El tema es que quiero que la clase main no siga ejecutando instrucciones hasta que alguna accion de la clase acciones haya terminado. Para eso se me ocurrio usar un evento personalizado.

Voy a simplificar el código a razón del objetivo.

la clase Eventos:

Código Flex :

package  {
   
   import flash.events.Event;   
   public class Eventos extends Event{
      
      public static const ACCION_TERMINADA:String = "AccionTerminada";

      public function Eventos(type:String):void {
         super(type);
      }
      
   public override function clone():Event
        {
            return new Eventos(type);
        }
   }   
}


La clase Acciones

Código Flex :

package  {
   import flash.display.MovieClip;
   import flash.events.Event;

   public class Acciones extends MovieClip{
      
      public function Acciones() {
      }
        
        public function realizaAccion(){
           dispatchEvent(new Eventos(Eventos.ACCION_TERMINADA));
        }
   }   
}


La clase Main

Código Flex :

package  {
   import flash.display.MovieClip;
   import flash.events.Event;
   import Acciones;
   
   public class Main extends MovieClip {

   public var acciones:Acciones;
   
      public function Main() {
      acciones = new Acciones();
      addChild(acciones);
                acciones.realizaAccion();
      acciones.addEventListener(Eventos.ACCION_TERMINADA ,accionTerminada);
      }

      private function accionTerminada(e:Eventos):void{
         trace("ACCION TERMINADA");
      }
   }   
}



Bien el problema el siguiente. Nunca entra a la función accionTerminada.

¿Algo que estoy haciendo mal? o ¿Estaré encarando mal el problema de "detener la ejecución de las instrucciones hasta que no se realice la acción"?

Cualquier ayuda será bienvenida

Saludos

Por jasinski

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2014 09:45 pm
Primero tienes que agregar el listener y luego realizar la acción
Eventos es un mal nombre para un evento, sería mejor ponerle FinishEvent o algo así. Lo mismo para Acciones ... de todas formas entiendo que te estas moviendo en un plano muy conceptual y solo probando principios, pero tengo en cuenta cuando lo tengas que hacer de verdad .... quizás necesites muchos tipos de eventos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Ene 2014 10:16 pm

solisarg escribió:

Primero tienes que agregar el listener y luego realizar la acción
Eventos es un mal nombre para un evento, sería mejor ponerle FinishEvent o algo así. Lo mismo para Acciones ... de todas formas entiendo que te estas moviendo en un plano muy conceptual y solo probando principios, pero tengo en cuenta cuando lo tengas que hacer de verdad .... quizás necesites muchos tipos de eventos

Jorge


Buenas, entiendo perfectamente lo que decis Jorge, pero el tema es que he probado ese código y no me funciona !

Por jasinski

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2014 10:31 pm
Que código?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Ene 2014 11:26 pm
Cuando ejecuto el Main no entra a la funcion accionTerminada, como puse en el post !

private function accionTerminada(e:Eventos):void{
trace("ACCION TERMINADA");
}

Por jasinski

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2014 11:29 pm
Ok, cuando digo "tienes que agregar el listener y luego realizar la acción" quiero decir

Código ActionScript :

public function Main() {
      acciones = new Acciones();
      addChild(acciones);
      acciones.addEventListener(Eventos.ACCION_TERMINADA ,accionTerminada);
      acciones.realizaAccion()
  }

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Ene 2014 06:23 am
Muchas gracias es así como decías Jorge ! Se puede cerrar el tema

Por jasinski

5 de clabLevel



 

chrome

 

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