テキストを表示する textField があり、タイマーが切れると、次のテキストが表示されます。または、タイマーを待つ代わりに、キーを押して次のテキストを表示することもできます。
var dispatchString:String;
function dispatchIt():void {
dispatchEvent(new Event(dispatchString));
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,dispatchIt);
function text1():void {
dispatchString = "text2";
addEventListener("text2",text2);
...
dispatchIt(); //when timer goes off
}
function text2(evt:Event):void {
removeEventListener("text2",text2);
dispatchString = "text3";
addEventListener("text3",text3);
...
dispatchIt();
}
私は、dispatchString と addEventListener を設定する部分を簡素化しようとしています。代わりに、両方を実行する 1 つのパラメーターで関数を呼び出します。次のようなものです:
function listenFor(s:String):void {
dispatchString = s;
addEventListener(s,this[s]);
}
ただし、ネストされた関数では機能しません。代わりに関数を渡し、dispatchString をその関数の名前に設定する別の方法があるのではないかと考えていましたが、うまくいきませんでした。他のアイデアはありますか?