La cosa es esta tengo una clase por decir algo asi:
Código :
package classes{
public class Main extends MovieClip {
var buildPreferences:BuildPreferences
public function callBuildPreferences ($nodeInfo:XML){
myInfo = $nodeInfo;
buildPreferences = new BuildPreferences ($nodeInfo,this)
}
public function preferencesLoaded ($backGround){
}
}Y tengo esta otra clase que la anterior instancio
Código :
package classes{
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Loader;
//*************
//*********** Esta clase construye las preferencias que llegan de la solicitud de validar al usuario
public class BuildPreferences {
var currentBackGround:String;
var currentContainer:Loader;
var callBack;
public function BuildPreferences ($nodeInfo,$parent){
currentBackGround = $nodeInfo.@backGround[0];;
callBack = $parent;
loadBackground ();
}
private function loadBackground (){
currentContainer = new Loader();
var bgURL:URLRequest = new URLRequest(currentBackGround);
currentContainer.load(bgURL);
currentContainer.contentLoaderInfo.addEventListener (Event.COMPLETE, preferencesLoaded);
}
function preferencesLoaded (e:Event){
callBack.preferencesLoaded (e.target.content);
}
}
}Como ven para poder regresar al que instancio la clase despues de un evento lo que hice fue que el que instancia la clase se mande como parametro para que la otra clase pueda hacer un llamado a un metodo de el cuando haya terminado.
Hay alguna forma de hacerlo mas decente, como poner en vez de callBack.preferencesLoaded (e.target.content); algo asi como parent.preferencesLoaded (e.target.content); o algo asi.
