Flash 如何在AddEvent Listener中内联定义ActionScript事件处理程序函数
我有一个动作监听器:Flash 如何在AddEvent Listener中内联定义ActionScript事件处理程序函数,flash,actionscript,Flash,Actionscript,我有一个动作监听器: myText.addEventListener(TextEvent.LINK,linkClickHandler); 根据这一点,我需要编写一个单独的事件处理函数来处理文本链接事件 现在我的要求是,我需要将函数写在同一行中,而不是给出它的名称 mytext.addEventListenet(TextEvent.LINK, function(event:TextEvent) {....code comes here....}); 我可以在
myText.addEventListener(TextEvent.LINK,linkClickHandler);
根据这一点,我需要编写一个单独的事件处理函数来处理文本链接事件
现在我的要求是,我需要将函数写在同一行中,而不是给出它的名称
mytext.addEventListenet(TextEvent.LINK,
function(event:TextEvent) {....code comes here....});
我可以在AS3中这样做吗?如果可能的话,它的语法是什么
我还想知道,除了默认参数event之外,我是否可以向事件处理程序传递一个额外的参数。您的代码可以正常工作。只需要函数上的返回类型 编辑:一个简单的委托类:
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);
}
}
很抱歉,我的评论含糊不清,但我曾经读到有一个bug。有人可以验证吗?根据具体情况,您必须确保动态函数在被调用之前不会被垃圾收集。通常,最好在某个地方注册函数。我的问题是,在action listner中声明时,我需要向事件处理程序传递一个参数。如果我能够做到这一点,我还可以在其他地方定义处理程序。我是否可以在声明action Listener时向函数传递一个额外的参数您需要执行类似委托类的操作:。这是一个很好的引用。谢谢你,伙计。代码也可以内联工作。现在我有两个很好的选择。酷事实上,这个例子很古老,并不完全是我想要的。我想知道是否有一种方式存在,比如“addEventlistener(handlerName,{parameters},…”。如果可能的话,那是最好的。