DisplayObject
階層の最上位にイベント再ディスパッチャが必要です。
public class Main extends MovieClip { // Document Class at Flash
private var objectA:ClassA;
private var objectB:ClassB;
public function Main() {
objectA = new ClassA();
addChild(objectA);
objectB = new ClassB();
addChild(objectB);
}
}
public class ClassA extends Sprite {
public function ClassA() {
addChild(new Bitmap(new BitmapData(20, 20, false, 0))); // A black square
addEventListener(MouseEvent.CLICK, clickedA);
}
public function clickedA(evt:MouseEvent):void {
dispatchEvent(new TextEvent("myEventType", true, false, "success"));
}
}
public class ClassB extends Sprite {
public function ClassB() {
addEventListener("myEventType", myFunction);
}
public function myFunction(evt:TextEvent):void {
trace(evt.text);
var color:uint = evt.text == "success" ? 0x00FF00 : 0xFF0000;
addChild(new Bitmap(new BitmapData(20, 20, false, color)));
}
}
myFunction
を通じてディスパッチに反応する必要がありMain
ます。
Main
子から他の子へのディスパッチされたイベントのリレーとして機能させるには、何を実装する必要がありますか?
ディスパッチャーおよびレシーバー/リスナーとして多くの子を持つことができると考えてください。つまり、すべてのケースに 1 つのリレーを実装する必要がないように、汎用的でなければなりません。