イベントをディスパッチする他の例を検索しましたが、どれも役に立ちませんでした。
これが私がこれまでに持っているものです。イベントリスナーが正常に追加されたことはわかっていますが、イベントは決してディスパッチされません。
.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
なぜこれがうまくいかないのかわかりません。