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},…”。如果可能的话,那是最好的。