すべてのオブジェクトウィッチがそのクラスにあり、指定されたリスナー関数がそのイベントをキャッチできるクラスでイベント (Action Script 3.0) をディスパッチする方法はありますか? . たとえば、次のような構造があります。
編集 (クラスを更新):
class example extends EventDispatcher {
object1 = {subObject1 = {anotherObject1, anotherObbject2}, subObject2}
object2 = {subObject3}
object3
...
}
そして、それらのいくつかにイベントリスナーが必要です:
anotherObject1.addEventListener(MyEvent.PART3D_CHANGED, function (e: MyEvent){/*do something*/);
anotherObbject2.addEventListener(MyEvent.PART3D_CHANGED, function (e: MyEvent){/*do something*/);
object3.addEventListener(MyEvent.PART3D_CHANGED, function (e: MyEvent){/*do something*/);
編集:次に、このクラス内でディスパッチ イベントが必要であり、すべてのオブジェクト ウィッチがリスナーにイベントを処理させるようにします。
this.dispatchEvent(new MyEvent(MyEvent.PART3D_CHANGED))
おわかりのように、1 つのタイプの Event をディスパッチする必要があり、すべてのオブジェクトでそれを行う必要はありません。
私の研究から、すべてのオブジェクトにイベントをディスパッチする必要があることがわかりましたが、多くのサブオブジェクトがあると、必要なリスナーとすべてのオブジェクトの子をループするための別のオプションを使用してすべてのオブジェクトをディスパッチする必要がある場合、コードが乱雑になります。リスナーが必要な場合に気にせずにリスナーを追加すると、コスト効率が低下します。ps私の英語でごめんなさい:-)