我有一个 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 的部分,而是使用一个参数来调用两者。所以像:
function listenFor(s:String):void {
dispatchString = s;
addEventListener(s,this[s]);
}
但这不适用于嵌套函数。我在想可能有另一种方法来传递函数并将 dispatchString 设置为该函数的名称,但我运气不佳。还有其他想法吗?