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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.03.2011, 19:26
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 21  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Ок,спрошу.
__________________
Я просто добрый шутник.

Старый 20.03.2011, 20:47
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 22  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Самое смешное с флешевыми событиями то, что если не мудрствуя лукаво переопределить clone() следующим образом:
Код AS3:
public override function clone():Event { return this; }
То будет облом, потому что диспатчер где-то, блин, запоминает, что уже диспатчил это событие (или даже скорее всего где-то в самом событии это записывает), и со второй попытки продипатчить то же самое событие он просто откажется это делать, молча. Самое смешное, что в виду того, что чуть более чем 99% событий как правило никому не нужны, и просто игнорируются в обработчиках, типичное флеш приложение генерит их тысячи штук в минуту, а то и в секунду... Вот такое вот смелое архитектурное решение...
Что до всплытия - если уж сами организовываете все... я понимаю, стандартный интерфейс, и хочется соответсвовать, но подумайте, а нужны ли вам stopPropagation, stopImmediatePropagation, preventDefault, eventPhase и еще парочка нативных методов, которые сейчас не вспомню, которые будут добавлены в ваши классы событий? Так уж ли часто вы используете что либо из вышеописанного (и знали ли вы вообще, что такие существуют)? Я к тому, что если уж делать все с нуля - зачем брать уже готовое, которое работает не так, как вам нужно + половина функионала избыточна? Т.е. конечно, в общем случае изобретать велосипед плохо, но если вам все равно его так или иначе изобретать, то разбирать старый чтобы создать новый?
__________________
Hell is the possibility of sanity

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Ага, wvxvw верно написал. Решение проблемы можно взять от dimarik`a: он просто нафигачил декоратор.
Код AS3:
internal var $event:	Event;
public final override function clone():Event {
	return this.$event;
}

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от wvxvw Посмотреть сообщение
... будет облом, потому что диспатчер где-то, блин, запоминает, что уже диспатчил это событие (или даже скорее всего где-то в самом событии это записывает), и со второй попытки продипатчить то же самое событие он просто откажется это делать, молча.
Аха, я тоже подивился твоему EventGenerator.

Добавлено через 5 минут
Цитата:
Сообщение от Котяра Посмотреть сообщение
Если у события не совпадает хозяин и корреспондент - то при рассылке клонируется вроде.
Если у события есть target, то оно клонируется в методе dispatchEvent.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 21.03.2011, 23:56
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 25  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Цитата:
а нужны ли вам stopPropagation, stopImmediatePropagation, preventDefault, eventPhase и еще парочка нативных методов, которые сейчас не вспомню, которые будут добавлены в ваши классы событий? Так уж ли часто вы используете что либо из вышеописанного (и знали ли вы вообще, что такие существуют)?
Да, как ни странно, но знал . У меня не было задачи сделать полноценную событийную модель, нужно было, чтоб "прадедушка" слушал "внучат" и "правнучат", вот я и подумал, что бабллинг тут уместен.
__________________
Я просто добрый шутник.

Старый 22.03.2011, 00:13
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 26  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нет, вы меня не так поняли. Я имел в виду, что эти методы / свойства в подавляющем большинстве случаев не нужны, или, еще хуже - бессмысленны. И именно поэтому знать о них не обязательно. Или, скажем так, не зазорно не знать. Точно так же, как, честно скажу, ни разу не пользовался accessibility, и понятия не имею, как оно работает.
__________________
Hell is the possibility of sanity

Старый 22.03.2011, 01:08
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 27  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
wvxvw, я понял, ты имеешь ввиду, что их не нужно "имитировать" в своей реализации, они как бы лишние, в довесок. Ок, мне это и не нужно было. Но вот все таки preventDefault и stopImmediatePropagation нужны довольно таки часто.
__________________
Я просто добрый шутник.

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

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

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


 


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


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