Comunidad de diseño web y desarrollo en internet online

Como agregar parametros al evento.

Citar            
MensajeEscrito el 29 Ene 2008 03:56 pm
Hola!!
Tengo un problema, aqui les cuento mi situacion
Deseo cargar varios swf externos al escenario, los parametros se encuentran en mysql por lo tanto los obtengo con amfphp.
El php me devuelve un arreglo con todos los parametros, como tamaño, x,y,rotation para asi poder cargar los swf, el arreglo al recorrerlo voy cargando los swf en loaders y les voy agregando el evento COMPLETE para asi poder modificar el tamaño y la ubicacion del mismo, el asunto es que no se como poder enviar el loader que deseo modificar y los parametros que obtuve de la base de datos hacia la funcion que llama el evento para asi modificar los swf
Aqui esta el codigo:


Código :

package {
   import flash.display.MovieClip;
   import fl.events.*;
   import flash.events.*;
   import flash.net.NetConnection;
   import flash.net.Responder;
   
   public class Main extends MovieClip {
      private var gateway:String = "http://localhost/amfphp/gateway.php";
      private var connection:NetConnection;
      private var responder:Responder;
      
      public function Main() {
         //this.addEventListener(MouseEvent.CLICK, sendData);
         sendData();
         responder = new Responder(onResult, onFault);
         connection = new NetConnection;
         connection.connect(gateway);
      }
      public function sendData():void {
         trace("Sending Data to AMFPHP");
         var params = "no envia nada";
         connection.call("Servicio.ob_datos", responder, params);
      }
      
      private function onResult(result:Object):void {
         trace(result[0].Name);
         for (var i:int = 0; i < result.length; ++i){
      var ldr:Loader = new Loader();
      var urlReq:URLRequest = new URLRequest(result[i].path);
      ldr.load(urlReq);
      ldr.addEventListener(Event.COMPLETE,onComplete(ldr,result[i].weight,result[i].height,result[i].x,result[i].y,result[i].rotation));
      addChild(ldr);
      }
      }


function onComplete(event:Event,ldr:Loader,w:int,h:int,xx:int,yy:int,r:int):void
{
ldr.width=w;
ldr.height=h;
ldr.x= xx;
ldr.y= yy;
ldr.rotation=r;
}
   
      private function onFault(result:Object):void {
         trace(result);
      }
   }
}


Gracias

Por Lunaty

Claber

118 de clabLevel



Genero:Femenino  

Flash Developer & RM Email Support for Google

msie
Citar            
MensajeEscrito el 29 Ene 2008 04:33 pm

Código :

ldr.addEventListener(Event.COMPLETE,onComplete(ldr,result[i].weight,result[i].height,result[i].x,result[i].y,result[i].rotation));

eso no se puede hacer...o mas bien, es imposible.!

primero, cambia la linea anterior por esta.

Código :

ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete));

despues, puedes hacer varias cosas, hacer una clase Singleton en la cual desde tu funcion onResult, tu desembocaras los datos cuando llegan, y despues en la funcion onComplete que se invoca cuando el loader termino de cargar recoger dichos datos..!, oo, irte por la variante de hacer una clase propia tuya que encapsule toda esa logica que propones, es decir ,que cargue y ella misma mediante un evento propio, te de los datos..

el como hacer un evento con parametros personalizados.
aqui te va un ejemplo :

Código :

package
{
   import flash.events.Event;

   public class miEvent extends Event
   {
      public static var FAULT : String = "fault";
      public static var RESULT : String = "result";
       
       private var _data: *;

       public function miEvent(type:String, data:*)
       {
          _data = data;
          super(type);
       }

       public function get data(): Object
       {
          return _data;
       }
   }
}


Cando lo vas a despachar este evento, creas una instancia de el, y le pasas en el constructor un string, y despues le puedes pasar [en este caso] cualquier tipo de datos.! EJ :

Código :

dispatchEvent(new miEvent(miEvent.FAULT, new String("Este fue el datos que mande"));


Espero te sirva para orientarte un poco ..!
salu2 ^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 29 Ene 2008 05:22 pm
Gracias por la info, ya voy entendiendo como resolver mi enredo :)

Por Lunaty

Claber

118 de clabLevel



Genero:Femenino  

Flash Developer & RM Email Support for Google

msie

 

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