![]() |
|
||||||||||
|
|||||
|
Здравствуйте. Тут возник такой вопрос: можно ли через Delegate вызвать функцию, сообщив ей определенные параметры. Я видел другой класс Delegate, поддерживающий такой синтаксис:
Delegate.create(scopeObject, function[, param1, param2 ..]); Где paramN - некие данные передаваемые в вызываемую функцию. Как я понял из справки, "родной" Delegate такой синтаксис не поддержиавет. Или я ошибаюсь? |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
вообще можно сделать насильно (как некоторым покажется кривым) таким способом:
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
ps: Могли бы просто открыть Delegate.as, и посмотреть. |
|
|||||
|
Спасибо CrazyFlasher, работает. Будем "насиловать"
функции этим замечательным способом. |
|
|||||
|
параметры передаются через scopeObject (работает во Flash 8),
насколько это правомочно, мне неизвестно... |
|
|||||
|
Регистрация: May 2006
Адрес: Город О
Сообщений: 169
|
Напишите свой Delegate. Все так делают ))
общая структура метода не так сложна. function delegate(scope:Object, handler:Function):Function {
var args:Array = arguments.slice(2);
var reScoped:Function = function (){
return handler.apply(scope, args);
}
return reScoped;
}
var dFunction:Function = function(p1,p2):Void
{
trace(p1+","+p2);
}
var myDelegatedFunction:Function = delegate(this,dFunction,"param1","param2");
myDelegatedFunction();
Последний раз редактировалось bbexp; 25.03.2008 в 12:23. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|