Comunidad de diseño web y desarrollo en internet online

Puedo pasar variables por DispatchEvent en AS3

Citar            
MensajeEscrito el 12 Jul 2012 06:54 pm
Hola compañeros de Cristalab.

Nuevamente les escribo para que por favor me ayuden en la siguiente inquietud: ¿Es posible pasar datos por DispatchEvent (Emisión de eventos personalizados), como por ejemplo una coordenada x y una coordenada Y de un objeto?

Esto lo quiero realizar de la siguiente manera:

ARCHIVO: Personaje.as

Código ActionScript :

if (this.toquecont.hitTestObject(Admin.contenedora))
 {    
 etiqueta = "camina";
 dispatchEvent(new Event("errorDeposito",));
 }


ARCHIVO2: Admin.as (Clase principal del FLA)

Código ActionScript :

   
personaje.addEventListener("errorDeposito", muestramensaje);

private function muestramensaje(e:Event):void
{
      mensajecont= new mensajeContenedor(stage); // aquí coloco las coordenadas, pero cómo???
      addChild(mensajecont);
}


ARCHIVO3: mensajeContenedor.as (el objeto que necesita las coordenadas)

Código ActionScript :

package com.principal
{
   import flash.display.MovieClip;
   import flash.display.Stage;
   import flash.events.Event;
   
   public class mensajeContenedor extends MovieClip
   {
      private var stageRef:Stage;
      private var dirx:Number;
      private var diry:Number;
      
      public function mensajeContenedor (stageRef:Stage, dirx:Number, diry:Number):void
      {
         this.stageRef = stageRef;
      }
      
   }
}


Muchas gracias por su ayuda!!! Quedo atento a sus respuestas.

Edwin Pacheco F.

Por efrgau

4 de clabLevel



Genero:Masculino  

Diseñador Web

chrome
Citar            
MensajeEscrito el 12 Jul 2012 09:09 pm
Aca te tiro un tip que te facilita la vida:
http://www.youtube.com/watch?v=54lBGj4p8As

Por lucasmoyano

Claber

1960 de clabLevel

22 tutoriales

Genero:Masculino  

Developer

chrome
Citar            
MensajeEscrito el 13 Jul 2012 09:23 am
BuenAS:

Sí, crea un evento personalizado: crea una clase que extienda de Event y le añades las propiedades PUBLICAS que desees.

Código ActionScript :

package
{
   import flash.events.Event;
   import flash.geom.Point;
   
   public class CustomEvent extends Event
   {
      public static const SEND_POSITION:String = "sendPosition";
      public var position:Point;
      
      public function CustomEvent(type:String, position:Point = null, bubbles:Boolean=false, cancelable:Boolean=false)
      {
         super(type, bubbles, cancelable);
         this.position = position;
      }
      
      override public function clone():Event
      {
         return new CustomEvent(type, position, bubbles, cancelable);
      }
      
      override public function toString():String
      {
         return formatToString("CustomEvent", "type", "position", "bubbles", "cancelable", "eventPhase");
      }
   }
}


y para distribuir el evento harías

Código ActionScript :

dispatchEvent(new CustomEvent(CustomEvent.SEND_POSITION, new Point(10, 20));


Cuidado que debes hacer un addEventListener a este evento personalizado que has creado si quieres recibir los valores.
Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 13 Jul 2012 03:17 pm

lucasmoyano escribió:

Aca te tiro un tip que te facilita la vida:
http://www.youtube.com/watch?v=54lBGj4p8As


Perfecto!!!!! muchísimas gracias Lucas el videotutorial ha solucionado muchas inquietudes, agradezco que hayas respondido y más adelante seguiré por aquí porque aún tengo muchas dudas.


Atentamente,

Edwin Pacheco F.

Por efrgau

4 de clabLevel



Genero:Masculino  

Diseñador Web

chrome

 

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