我有一个动作监听器:
myText.addEventListener(TextEvent.LINK,linkClickHandler);
根据这个,我需要编写一个事件处理函数seperate来处理文本链接事件。
现在我的要求是我需要在相同的行中编写该函数,而不是给它的名字。比如
mytext.addEventListenet(TextEvent.LINK,
function(event:TextEvent) {....code comes here....});
我可以在AS3中这样做吗。如果可能的话,这将是什么语法。
我也想知道,除了作为默认参数的事件之外,我还可以向事件处理程序传递一个额外的参数。
答案 0 :(得分:4)
您的代码将有效。只需要在函数上有一个返回类型。
编辑:一个简单的委托类:
public class Delegate
{
public var cb:Function;
public var args:Array;
public function Delegate(cb:Function, ...args)
{
this.cb = cb;
this.args = args;
}
public static function create(cb:Function, ...args):Function {
var functionProxy:Delegate = new Delegate(cb, args);
return functionProxy._create;
}
public function _create(e:Object=null):void {
var params:Array = new Array();
if(e) {
params.push(e);
}
for each (var o:Object in args[0]) {
params.push(o);
}
cb.apply(null, params);
}
}