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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.03.2011, 22:07
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 11  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вероятно, я не до конца понял суть вопроса.

Код AS3:
function обработчик(event:Event):void {
    if (event.eventPhase !== EventPhase.AT_TARGET) return;
    trace( (event.target as МояКнопка).внутрифизический_id);
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 01.03.2011, 22:45
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 12  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Понятно.
Лично у меня достаточно часто дизайн уже собран и мне приходится доставать SimpleButton по getChildByName. У меня нет возможности привести SimpleButton к CustomSimpleButton (во всяком случае не создавая обёрток и прочего, что в 9 из 10 случаев излишне), поэтому Dictionary для меня панацея.

Старый 01.03.2011, 22:52
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 13  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Подмени классы кнопок в рантайме. Делов-то! )
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 01.03.2011, 22:58
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 14  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Это не проблема )
Просто я же говорю, в 9 из 10 случаев SimpleButton справляется лучше некуда. Незачем жирафу когти растить )

Старый 01.03.2011, 23:00
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 15  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Честно скажу, что Dictionary никогда не использовал в своих разработках.
Опаньки, а как Вы искали вьюшку по ее модельке?
Или один я, идиот, так делаю, а есть какой-то более прозрачный и "правильный" способ?

Старый 02.03.2011, 00:06
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 16  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Это не проблема )
Просто я же говорю, в 9 из 10 случаев SimpleButton справляется лучше некуда. Незачем жирафу когти растить )
А как тебе другие варианты идентификации кнопок?

Код AS3:
private var _buttonIndex:    uint;
 
function обработчик(event:Event):void {
    if (event.eventPhase !== EventPhase.AT_TARGET) return;
    const button:InteractiveObject = event.target as SimpleButton;
 
    if (button.tabIndex == 0)
        button.tabIndex = ++this._buttonIndex;
 
    trace( button.tabIndex /* as внутрифизический_id */  );
}
либо

Код AS3:
private var _buttonIndex:    uint;
 
function обработчик(event:Event):void {
    if (event.eventPhase !== EventPhase.AT_TARGET) return;
    const button:DisplayObject = event.target as SimpleButton;
 
    if (button.name.indexOf('instance') != -1)
        button.name = uint(++this._buttonIndex).toString(33);
 
    trace( button.name /* as внутрифизический_id */  );
}
Тигра, у тебя есть более весомые доводы в пользу использования Dictionary?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 02.03.2011 в 00:10.
Старый 02.03.2011, 00:31
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 17  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Димка, вот я программирование в 12 лет полюбил именно за то, что здесь можно придумать 40 разных способов реализовать задачу, один краше другого. Всякие геометрии, физики и прочее мне не нравились своей "сухостью". Ну нашли мы длину катета, ну и что? А вот когда начал серьезно увлекаться программированием появилась любовь и к геометрии, и к матану, и к физике...
Конечно, можно обходиться без Dictionary в любой ситуации. Можно даже обходится без if/switch, делая всё тернарным ?. Но стоит ли?
В твоём примере tabIndex может использоваться по назначению. К тому же он паблик. Что же это, кто-то используя мой класс и поменяв таб-индекс у кнопки поломает всю мою программу? Или мне перекрывать getChildByName, getChildAt, останавливать распространение Event.ADDED и всё такое?
Похожая ситуация и с name. Только названия мы даём более-менее осмысленные, нести какие-то метафизические свойства в нём как-то не очень.

Проще говоря, я нашел как минимум одно: здоровая инкапсуляция с отсутствием "лишних" сущностей.
А какие у тебя против?

Добавлено через 5 минут
P.S. вспомнил тут. Когда не умел делать наследования и всё такое, стояла задача передать число в обработчик. Были мысли воспользовать transfom#Matrix#a,b... — типа когда меняются всё равно ничего не происходит (я не обновлял, просто менял), а число прилетает. Вот из этой же серии.

Старый 02.03.2011, 00:39
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 18  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Ни разу в жизни не использовал Dictionary, кроме тестовых программ, для теста его же самого.
Не горжусь и не стыжусь =)

Старый 02.03.2011, 00:44
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 19  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Я ни в коем случае не пропагандирую его использование =)
Я пропагандирую отказ от плясок с бубном с целью показать, что в принципе и без него можно.

Может, дело вкуса.

Старый 02.03.2011, 00:46
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 20  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
А как ты делал, когда тебе надо было перебросить какое-нибудь значение с объектом? (ну, например внутрифизический id экземпляра кнопки при клике, если обработчик для кучи кнопок один)? Создавал наследника или проверял в цикле на все возможные значения? Последний вариант куда более быдлокодерский.
Вообще, уже не здоровая ситуация, что с нажатием кнопки нужно перебрасывать куда-то какое-то значение.

Добавлено через 3 минуты
По сабжу, по-моему я как то предвзято стал относиться к использованию Dictionary после тестов подобных вашим.

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

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

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


 


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


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