Web-TorMedlem sedan nov. 200013 890 inlägg Jag är ny på det här med broadcast. ;)
Den här koden använder jag för att broadcasta att ett mc ändrar storlek:
public var resizeWinBroadcast:Object = new Object();
private function broadcastResize():Void {
AsBroadcaster.initialize(resizeWinBroadcast);
resizeWinBroadcast.broadcastMessage("onResize");
trace("broadcast");
}
Koden funkar om jag kör addListener från samma klass men nu vill jag reagera på "onResize" från en annan klass men det funkar inte med den här koden:
class GadButton {
var resizeWinBroadcast:Object = new Object();
var myListener:Object = new Object();
public function GadButton(){
initListener();
}
private function initListener():Void {
resizeWinBroadcast.addListener(myListener);
myListener.onResize = Delegate.create(this, handleResize);
}
private function handleResize():Void {
trace("listen");
}
}
Jag får ut "broadcast" men inte "listen"? :q
Du kan inte skicka ut ett medelande direkt efter det att du anropat AsBroadcaster.initialize(). Det är denna som sätter upp att det angivna objektet kan ha listeners bland annat genom att skapa metoderna addListener() och removeListener().
/Mirandir
Web-TorMedlem sedan nov. 200013 890 inlägg Du menar att jag helt enkelt ska ta bort AsBroadcaster.initialize()?
Nej. Jag menar att du skall flytta AsBroadcaster.initialize() så att den körs i samband med att objektet skapas istället för i samband med att eventet avfyras.
Förresten så i klassen GadButton så har du ett property som heter "resizeWinBroadcast" vilket ytterliggare ställer till det eftersom den nu försöker skapa en listener på det objektet.
/Mirandir
Web-TorMedlem sedan nov. 200013 890 inlägg Men kommer detta att funka överhuvudtaget? Är inte problemet att jag i GadButton inte vet vilket objekt jag ska ha framför ???.addListener(myListener)?
Web-TorMedlem sedan nov. 200013 890 inlägg Jab byggde om hela skiten och använde EventDispatcher istället...