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

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

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

Регистрация: May 2009
Сообщений: 220
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Событие клонируется при нативном EventDispatcher::dispatchEvent`е.
Событие клонируется при повторном диспатче использованного эвента. При обычном распространении события - оно не клонируется. И не важно вызвал метод Sprite или EventDispatcher.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вы имеете ввиду, если вызвать метод EventDispatcher#dispatchEvent, то внутри него произойдет event.clone();
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Сообщение от switcher! Посмотреть сообщение
Событие клонируется при повторном диспатче использованного эвента. При обычном распространении события - оно не клонируется. И не важно вызвал метод Sprite или EventDispatcher.
Вы мои слова повторили. Только вот у Sprite`а нету метода dispatchEvent.
И вот только оно клонируется всегда, даже при первом вызове dispatchEvent`а.

Короче, то что сказал dimarik.

Старый 10.06.2010, 18:51
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 24  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Вы мои слова повторили
можно на "ты". Я флеймовую темку почитал по этому поводу. Просветился -)))

Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Только вот у Sprite`а нету метода dispatchEvent.
я где-то сказал, что Sprite определяет dispatchEvent?

Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
И вот только оно клонируется всегда, даже при первом вызове dispatchEvent`а.
нет, клон это новый объект. Как тогда объяснить это, если dispatchEvent всегда создает клон:
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.EventDispatcher;
 
	public class Example extends Sprite {
		private var _event:Event;
 
		function Example() {
			super();
 
			this._event = new Event(Event.CHANGE);
 
			var s3:EventDispatcher = new EventDispatcher();
			s3.addEventListener(Event.CHANGE, this._test1);
			s3.dispatchEvent(this._event);
		}
 
		private function _test1(e:Event):void {
			trace(this._event === e); //true
		}
	}
}
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Короче, то что сказал dimarik.
имо, dimarik задал вопрос, а не выдвинул утверждение.

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

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

Видимо событие несёт в себе какой-то флаг а-ля isUsed, и раздваяйца оно только если событие уже было использовано.

Цитата:
я где-то сказал, что Sprite определяет dispatchEvent?
Не так понял. Во флеше все методы виртуальные, поэтому эта фраза по сути смысловой нагрузки для меня не несёт. Вот и додумал =)

Старый 10.06.2010, 20:10
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 26  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
А второе событие уже клон.
ага.
Собственно, под эгидой этого топика я надеялся избавиться от геттеров в сложных событиях (наступление которого ожидают несколько объектов/обработчиков). Но, видимо - не судьба.
"Не клонируется", раз... "Не клонируется", два... "Не клонируется", три... Пр...

P.S. оффтоп. Даный топик имеет тег "Лень", по которому в поиске пробивается только этот топик. Забавно ))

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
switcher, геттеры (ридонли) - это лишь перестраховка в 99% случаев, чтобы случайно что-нибудь не изменить - чисто по запарке.

Старый 10.06.2010, 20:59
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 28  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
разумеется, но я эту "перестраховку" вывел в стандарт. В простых нотификациях можно и открытыми переменными обойтись, ибо плевать, что обработчик с объектом события сделает. Оно (событие) ему только и предназначается.
Однако в сложных, когда подписчиков много, я не хочу держать в голове: что я могу, а что не могу делать с полями объекта события. Я хочу быть уверенным, что объект как неизменный штамп события дойдет до адресата в том виде, в каком он изначально описывает событие.

А так, конечно, можно все переменные пабликами делать, из детей родителями управлять и т.д. => главное, "чисто по запарке" не запутаться

P.S. Я не занимаюсь миссионерством. Если кого-то сей подход не устраивает, пожалуйста, пожалуйста...

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Клонирование события происходит при наличии у диспетчера parent и если выставлен флаг bubbles?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 10.06.2010 в 22:02.
Старый 10.06.2010, 22:50
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 30  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
неа, пока установлен только один случай, когда происходит клонирование события. Это повторный диспатч того же объекта события.

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

Теги
flash , Лень , Проектирование , события
Опции темы
Опции просмотра

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

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


 


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


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