1

イベントをディスパッチする他の例を検索しましたが、どれも役に立ちませんでした。

これが私がこれまでに持っているものです。イベントリスナーが正常に追加されたことはわかっていますが、イベントは決してディスパッチされません。

.mxml ファイル内:

function foo():void {

    var eventClassObj:MyEventClass = new MyEventClass();


}

別の .as ファイル:

public class MyEventClass extends EventDispatcher 
{

    public function MyEventClass(target:flash.events.IEventDispatcher = null) 
    {

                    //ADD EVENT LISTENER
        this.addEventListener("test", testFunc, true);



                    //DEBUGGING PRINT STATEMENTS
        var str:String;
        if (this.hasEventListener("test")) {
                str = "EVENT LISTENER ADDED";
        } else {
                str = "NO LISTENER";
        }

        ExternalInterface.call("console.log", str);

                    //DISPATCH EVENT
        this.dispatchEvent(new Event("test", true));
    }


    //THIS MUST EXECUTE WHEN EVENT DISPATCHED
    private function testFunc(e:Event):void {
        ExternalInterface.call("console.log", "dispatch event successful");
    }
}

私は ActionScript3 の初心者です。イベントがディスパッチされない理由を知っていますか? これを実行するためのコンソールでの私の出力は次のようになります。

EVENT LISTENER ADDED

私の予想される出力は次のとおりです。

EVENT LISTENER ADDED
dispatch event successful

なぜこれがうまくいかないのかわかりません。

4

1 に答える 1