Как определить встроенную функцию обработчика событий ActionScript в AddEvent Listener - PullRequest
5 голосов
/ 23 июня 2010

У меня есть прослушиватель действий:

myText.addEventListener(TextEvent.LINK,linkClickHandler);

В соответствии с этим мне нужно написать отдельную функцию обработчика событий для обработки события текстовой ссылки.

Теперь мое требование - это янужно написать эту функцию в той же строке, вместо того, чтобы давать ее name.ie, что-то вроде

mytext.addEventListenet(TextEvent.LINK, 
                 function(event:TextEvent) {....code comes here....});

Могу ли я сделать это в AS3.Какой синтаксис будет, если это возможно?

Также я хочу знать, могу ли я передать еще один дополнительный параметр обработчику событий, кроме события, которое является параметром по умолчанию.

1 Ответ

4 голосов
/ 23 июня 2010

Ваш код будет работать. Просто нужно вернуть тип функции.

РЕДАКТИРОВАТЬ: простой класс делегата:

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);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...