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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.06.2014, 16:30
Psijic вне форума Посмотреть профиль Отправить личное сообщение для Psijic Найти все сообщения от Psijic
  № 1  
Ответить с цитированием
Psijic

Регистрация: Aug 2012
Сообщений: 108
Question экземпляр функции (new Function)

Добрый день. Что-то не соображу, как лучше создать многократный экземпляр функции с параметром. В основном везде создается новый экземпляр класса, содержащий эту функцию. Сделал также, но хотелось бы улучшить код. Пример: создать n-е количество разных функций вида

Код AS3:
protected function buttonInitializer(button: Button): void
{
    trace(button);
}

Старый 30.06.2014, 16:40
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS3:
for(var i:int = 0; i < 10; i++)
{
   array.push( function() : void { } )
}
Зачем тебе это? Это неверный подход изначально
__________________
Марк Tween

Старый 30.06.2014, 16:53
Psijic вне форума Посмотреть профиль Отправить личное сообщение для Psijic Найти все сообщения от Psijic
  № 3  
Ответить с цитированием
Psijic

Регистрация: Aug 2012
Сообщений: 108
Цитата:
Сообщение от in4core Посмотреть сообщение
Код AS3:
for(var i:int = 0; i < 10; i++)
{
   array.push( function() : void { } )
}
Зачем тебе это? Это неверный подход изначально
Сомневаюсь что данный цикл тут поможет. А как насчет параметров и уникальности функций?

Зачем мне это? Я решил систематизировать, упростить и сделать более динамичным создание тем в Feathers ибо их "CSS-стиль" уж больно громоздкий (1400 строк на одну тему, код дублируется весьма часто). А там каждый инициализатор - независимая функция. Начальный код выглядел так.

P.S. В чем еще загвоздка:

инициализация задается так:
Код AS3:
setInitializerForClass(Button, buttonInitializer, unit.name);
где button: Button - параметр, передаваемый извне (не мной). Собственно, функцию инициализатора и надо создавать уникальной для каждого компонента (кнопки в данном случае)
Код AS3:
protected function buttonInitializer(button: Button): void
{
    trace(button);
}


Последний раз редактировалось Psijic; 30.06.2014 в 17:14.
Старый 30.06.2014, 17:54
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 4  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Мне наоборот очень нравится скинрование fathers и минимизировать код, который не содержит не чего лишнего.. Зачем и главное, как Вы это хотите сделать? Вместо тысячи строк, создать массив с тысячами имен для методов, массив с тысячами массивов, для параметров... Так что ли?
И если мне не изменяет память, то там ничего не дублируется.. там есть настройки для кнопки по умолчанию и настройки, в зависимости от юзернама... Если Вам нужно одну кнопку красную, а другую зеленую, то Вам хоть душу сатане продайте, придется делать два метода, для красной и для зеленой.
И чтобы программа различала, какой какая должна быть, нужны те же имена.. не?

Старый 30.06.2014, 18:09
Psijic вне форума Посмотреть профиль Отправить личное сообщение для Psijic Найти все сообщения от Psijic
  № 5  
Ответить с цитированием
Psijic

Регистрация: Aug 2012
Сообщений: 108
Цитата:
Сообщение от LifeIsRhythm Посмотреть сообщение
Мне наоборот очень нравится скинрование fathers и минимизировать код, который не содержит не чего лишнего.. Зачем и главное, как Вы это хотите сделать? Вместо тысячи строк, создать массив с тысячами имен для методов, массив с тысячами массивов, для параметров... Так что ли?
И если мне не изменяет память, то там ничего не дублируется.. там есть настройки для кнопки по умолчанию и настройки, в зависимости от юзернама... Если Вам нужно одну кнопку красную, а другую зеленую, то Вам хоть душу сатане продайте, придется делать два метода, для красной и для зеленой.
И чтобы программа различала, какой какая должна быть, нужны те же имена.. не?
Все уже достаточно неплохо проработано. Будет задаваться массив объектов подобно тем же List.dataProvider. Думаю, пока остановлюсь на классе, может, потом Джош изучит и добавит что-то.

А вообще, гр. LifeIsRhythm, чтобы понять задачу, попробуйте для начала создать так с пяток различных тем с общими компонентами. И вот с именами там вообще проблем нет. Вообщем, копипаста - не наш метод (после определенного порога).

Старый 30.06.2014, 18:44
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 6  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Мне кажется я понял о чем Вы))) Вы о том, что если для одного приложения нужно создать пять скинов,
то нужно один и тот же метод, предположим buttonDefaul(button:Button):Button, переписывать пять раз?
Если об этом, то я вообще на json переделал и один класс просто разные настройки грузит.

Добавлено через 2 минуты
И даже если и об этом, то зачем что-то менять, ведь можно ссылки на текстуры перебить и вызвать у всех компонентов update?


Последний раз редактировалось LifeIsRhythm; 30.06.2014 в 18:59.
Старый 30.06.2014, 19:03
Psijic вне форума Посмотреть профиль Отправить личное сообщение для Psijic Найти все сообщения от Psijic
  № 7  
Ответить с цитированием
Psijic

Регистрация: Aug 2012
Сообщений: 108
Возможно, на поздних этапах развития формирование темы вообще не нужно. Надо бы задуматься о конструкторе. Я бы посмотрел ваш метод.

Да и не только для одного приложения, мой метод просто меняет принципы создания стандартных компонентов темы.

Старый 01.07.2014, 01:03
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 8  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Цитата:
мой метод просто меняет принципы создания стандартных компонентов темы.
Я не знаю, чего Вы там придумали, но мне очень понравилось исполнение и на мой взгляд,
эти компоненты, в пример любой книге о ООП ставить. Код-учебник получился.

Старый 01.07.2014, 15:57
Psijic вне форума Посмотреть профиль Отправить личное сообщение для Psijic Найти все сообщения от Psijic
  № 9  
Ответить с цитированием
Psijic

Регистрация: Aug 2012
Сообщений: 108
выложил частично http://forum.starling-framework.org/...heme-generator

Старый 01.07.2014, 16:58
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 10  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
А можете объяснить обязанность класса Initializer и главное, сколько его инстенсов можно создавать?

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

Теги
класс , функция , экземпляр

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

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


 


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


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