Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.11.2008, 18:58
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 11  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Цитата:
Сообщение от Smrad Посмотреть сообщение
То что кто-то не умеет использовать определенную технику, это не делает эту технику извратом.

У меня есть массив кнопок. Как в цикле повесить на них однотипные обработчики?
Так вы и не описали, зачем вам такая реализация. Правда, и в вашем случае это всё равно изврат, создавать функции в цикле.

Цитата:
Сообщение от __etc Посмотреть сообщение
Повторяться не буду:

http://www.flasher.ru/forum/showthread.php?t=113736
Отличная тема.

Старый 21.11.2008, 19:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 12  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Smrad, какой класс проблем? Это универсальное решение для варианта «N данных для N кнопок».

Старый 21.11.2008, 19:18
Smrad вне форума Посмотреть профиль Отправить личное сообщение для Smrad Найти все сообщения от Smrad
  № 13  
Ответить с цитированием
Smrad

Регистрация: Nov 2008
Сообщений: 205
Отправить сообщение для Smrad с помощью ICQ
Цитата:
Сообщение от Fernando Costa Посмотреть сообщение
создайте кнопке класс
Это все очевидно.
Я спрашивал о конкретном языковом механизме.

Добавлено через 4 минуты
Цитата:
Сообщение от __etc Посмотреть сообщение
Smrad, какой класс проблем? Это универсальное решение для варианта «N данных для N кнопок».
Проблема не в кнопках. А в создании функций в цикле.

Старый 21.11.2008, 19:25
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Smrad Посмотреть сообщение
Проблема не в кнопках. А в создании функций в цикле.
Боже мой, зачем? Объясните, какая цель преследуется в создании кучи функций в цикле? Сколько я себя помню, ни разу у меня не возникала необходимость подобного.

Старый 21.11.2008, 19:32
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 15  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от Smrad Посмотреть сообщение
А в создании функций в цикле.
Я вам еще раз повторяю - функции в цикле не создают. И не потому что я "не умею использовать определенную технику", а потому, что это не техника, а дилетантство.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.11.2008, 21:09
Smrad вне форума Посмотреть профиль Отправить личное сообщение для Smrad Найти все сообщения от Smrad
  № 16  
Ответить с цитированием
Smrad

Регистрация: Nov 2008
Сообщений: 205
Отправить сообщение для Smrad с помощью ICQ
Цитата:
Сообщение от __etc Посмотреть сообщение
Боже мой, зачем? Объясните, какая цель преследуется в создании кучи функций в цикле? Сколько я себя помню, ни разу у меня не возникала необходимость подобного.
Для того, чтобы не писать лишний код.

Добавлено через 6 минут
Цитата:
Сообщение от iNils Посмотреть сообщение
Я вам еще раз повторяю - функции в цикле не создают. И не потому что я "не умею использовать определенную технику", а потому, что это не техника, а дилетантство.
Так вы же не пробовали, откуда тогда знаете, что это дилетантство. Стало быть, всё функциональное программирование - дилетанство.

В общем какого-то изящного решения я не нашел, пришлось сделать в лоб.
Всем спасибо, тему можно закрыть.

Старый 21.11.2008, 21:40
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 17  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от Smrad Посмотреть сообщение
Так вы же не пробовали, откуда тогда знаете, что это дилетантство.
Если сами не знаете, слушайте и учитесь у тех кто знает.
Код AS3:
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))
}
Отличии моего от вашего в том, что у меня одна копия на 10 объектов, а у вас 10 копий, по одной на каждый объект. А результат один и тот же.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.11.2008, 22:33
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 18  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Smrad Посмотреть сообщение
Для того, чтобы не писать лишний код.
Добиться небольшого количества кода можно и без засорения памяти одинаковыми неудаляемыми функциями.

Старый 22.11.2008, 13:54
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 19  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Автору.
Вобщем-то все работает у вас правильно.
Вы написали в цикле trace(i); и у вас трейсится значение переиенной i. В чем проблема? Если вы хотите другого результата то поменяйте логику.

Старый 29.11.2008, 14:52
Smrad вне форума Посмотреть профиль Отправить личное сообщение для Smrad Найти все сообщения от Smrad
  № 20  
Ответить с цитированием
Smrad

Регистрация: Nov 2008
Сообщений: 205
Отправить сообщение для Smrad с помощью ICQ
Чтобы не создавать лишнюю тему, отпишу здесь.

Описанный __ect способ работает не совсем корректно. Дело в том что таржет и "то на что вешали листенер" могут не совпадать. Это бывает если "то на что вешали листенер" имеет потомков (в смысле child'ов).

Замыканий в as3, как оказалось, нет. Жаль. Зато есть динамические поля, применяя которые, можно получить такой же эффект.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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