Estoy haciendo una aplicacion en la cual tengo varios swf externos, tonces por medio de amfphp esoty cargando los parametros como x,y,height,ect para asi cuando cargue los swf, modificarlos.
Tonces con un for voy recorriendo los resultados devueltos por php; para poder modificar el swf cargado mando el loader a una clase Singleton junto con los parametros del mismo y asi cuando llegue a l evento COMPLETE, se modifique.
Ahora el problema es que no llama la funcion cuando se produce el evento COMPLETE.
No se que estare haciando mal.
Aqui esta el codigo:
Código :
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.net.NetConnection;
import flash.net.Responder;
import flash.display.*;
import flash.net.URLRequest;
import flash.geom.Matrix;
import flash.events.Event;
public class Main extends MovieClip {
private var gateway:String = "http://localhost/amfphp/gateway.php";
private var connection:NetConnection;
private var responder:Responder;
private var s:Singleton;
private var mapa:Loader;
public function Main() {
//this.addEventListener(MouseEvent.CLICK, sendData);
responder = new Responder(onResult, onFault);
connection = new NetConnection;
connection.connect(gateway);
mapa = new Loader();
this.sendData();
//mapa.addEventListener(Event.COMPLETE,sendData);
var urlReq:URLRequest = new URLRequest("mapa_costarica.swf");
mapa.load(urlReq);
addChild(mapa);
}
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 {
for (var i:int = 0; i < result.length; ++i){
var ldr:Loader = new Loader();
ldr.addEventListener(Event.COMPLETE,onComplete);
var urlReq:URLRequest = new URLRequest(result[i].path);
ldr.load(urlReq);
s=Singleton.getInstance(ldr,result[i].weight,result[i].height,result[i].x,result[i].y,result[i].rotation);
addChild(ldr);
}
}
function onComplete(event:Event):void //AQUI NO ENTRA!!
{
trace("llegue1");
trace(s.w);
s.l.width=s.w;
s.l.height=s.h;
s.l.x= s.x;
s.l.y= s.y;
s.l.rotation=s.r;
}
private function onFault(result:Object):void {
trace(result);
}
}
}La clase Singleton:
Código :
package{
import flash.display.Loader;
public class Singleton {
public var x:int;
public var y:int;
public var h:int;
public var w:int;
public var r :int;
public var l:Loader;
private static var instance : Singleton;
public function Singleton (ldr:Loader,ww:int,hh:int,xx:int,yy:int,rr:int)
{
trace("crea");
l=ldr;
x=xx;
y=yy;
h=hh;
r=rr;
}
public function modificar (ldr:Loader,ww:int,hh:int,xx:int,yy:int,rr:int){
trace("modifica");
l=ldr;
x=xx;
y=yy;
h=hh;
r=rr;
}
public static function getInstance(ldr:Loader,ww:int,hh:int,xx:int,yy:int,rr:int):Singleton {
if (Singleton.instance == null) {
Singleton.instance = new Singleton(ldr,ww,hh,xx,yy,rr);
}else{
instance.modificar(ldr,ww,hh,xx,yy,rr);
}
return Singleton.instance;
}
}
}
