![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
|
Цитата:
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Smrad, какой класс проблем? Это универсальное решение для варианта «N данных для N кнопок».
|
|
|||||
|
Это все очевидно.
Я спрашивал о конкретном языковом механизме. Добавлено через 4 минуты Проблема не в кнопках. А в создании функций в цикле. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Боже мой, зачем? Объясните, какая цель преследуется в создании кучи функций в цикле? Сколько я себя помню, ни разу у меня не возникала необходимость подобного.
|
|
|||||
|
Цитата:
Добавлено через 6 минут Цитата:
В общем какого-то изящного решения я не нашел, пришлось сделать в лоб. Всем спасибо, тему можно закрыть. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Если сами не знаете, слушайте и учитесь у тех кто знает.
var handler:Function = function(par:int) : Number { return par * par; }; var ar : Array = new Array(); for (var i : int = 0; i < 10; i++) { var obj:Object = new Object (); obj.handler = handler; obj.i = i; ar.push (obj); } for (var j : int = 0; j < 10; j++) { trace (ar[j].handler (ar[j].i)) } |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Добиться небольшого количества кода можно и без засорения памяти одинаковыми неудаляемыми функциями.
|
|
|||||
|
Автору.
Вобщем-то все работает у вас правильно. Вы написали в цикле trace(i); и у вас трейсится значение переиенной i. В чем проблема? Если вы хотите другого результата то поменяйте логику. |
|
|||||
|
Чтобы не создавать лишнюю тему, отпишу здесь.
Описанный __ect способ работает не совсем корректно. Дело в том что таржет и "то на что вешали листенер" могут не совпадать. Это бывает если "то на что вешали листенер" имеет потомков (в смысле child'ов). Замыканий в as3, как оказалось, нет. Жаль. Зато есть динамические поля, применяя которые, можно получить такой же эффект. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|