E' qui che ti viene incontro l'estensione delle classi. Se estendi la classe di cui parli come sottoclasse di EventDispatcher, potrai attivare un evento legato a quella classe, in qualsiasi altro posto ti serva. Mettiamo questo esempio:
Abbiamo creato la classe Controlli in maniera tale da caricarci un file xml che contenga le variabili di configurazione che ci servono e abbiamo usato dispatchEvent per creare un evento riferito alla classe Controlli, che possiamo poi sfruttare dentro "main" per usare i dati ricevuti dall'xml e incanalati sempre dentro Controlli nella proprietà "risultato".Codice PHP:package {
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class Controlli extends EventDispatcher {
private var _risultato:XML;
public function Controlli (xml:String) {
var loader:URLLoader = new URLLoader(new URLRequest(xml));
loader.addEventListener(Event.COMPLETE, __complete__);
}
private function __complete__ (e:Event) {
dispatchEvent(e);
risultato = new XML(e.target.data);
}
public function get risultato ():XML {
return _risultato;
}
}
}
Prendi le classi scritte solo come esempio, perchè non effettuano il controllo degli errori in caso di mancato caricamento o se i dati dall'esterno non vengono riconosciuti come XML.Codice PHP:package {
import flash.display.Sprite;
public class main extends Sprite {
public var controlli:Controlli;
public function main () {
controlli = new Controlli("conf.xml");
controlli.addEventListener(Event.COMPLETE, completeHandler);
}
public function completeHandler (event:Event) {
trace(event.target.risultato);
}
}
}

Rispondi quotando
