Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   FAQ (http://www.flasher.ru/forum/forumdisplay.php?f=86)
-   -   [AS2] utils.Delegate и передача параметров в функцию (http://www.flasher.ru/forum/showthread.php?t=102723)

eXplozive 20.10.2007 04:29

[AS2] utils.Delegate и передача параметров в функцию
 
Всем доброй ночи ... вот столкнулся с проблемой при передаче параметров при вызове функции через Delegate.create , я слышал что эту проблему вроде как решили ... может кто подкинет модифицированый класс или ссылочку на описание как это сделать ...

Заранее премного благодарен.

screamge 20.10.2007 04:35

Код:

class ascb.util.Proxy {

  public static function create(oTarget:Object, fFunction:Function):Function {

    var aParameters:Array = new Array();
    for(var i:Number = 2; i < arguments.length; i++) {
      aParameters[i - 2] = arguments[i];
    }

    var fProxy:Function = function():Void {
      var aActualParameters:Array = arguments.concat(aParameters);
      fFunction.apply(oTarget, aActualParameters);
    };

    return fProxy;

  }

}

Код:

onRelase = Proxy.create (this, this.tracer, ['hallo']);
Код:

private function tracer (ar:Array):Void {
      trace (ar);
}


udaaff 20.10.2007 05:38

Код:

class MyDelegate {
        public static function create(o:Object, f:Function):Function {
                var arg:Array = arguments.slice(2);
                var newF:Function = function ():Void {
                        f.apply(o, arg);
                };
                return newF;
        }
}

PS: return добавил
Код:

class MyDelegate {
        public static function create(o:Object, f:Function):Function {
                var arg = arguments.slice(2);
                var newF = function () {
                        return f.apply(o, arg);
                };
                return newF;
        }
}


etc 20.10.2007 14:29

Переедем на всякий случай в FAQ.


Часовой пояс GMT +4, время: 12:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.