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

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

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

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
По умолчанию Свое всплывание событий.

Всем привет. Тут мелькала эта идея, но я шота не могу понять как сделать.
Входящие данные:

1. события разные. 99% — уже имеющийся в AS3 набор.
2. всплывать событиям придется в иерархии объектов типа EventDispatcher (?)
3. надо сохранить target

нид хелп короч.
__________________
Поймай яблоко 2!

Старый 14.10.2010, 16:15
passertm вне форума Посмотреть профиль Отправить личное сообщение для passertm Найти все сообщения от passertm
  № 2  
Ответить с цитированием
passertm
[+1 28.12.10]
[+1 29.12.10]
 
Аватар для passertm

Регистрация: Aug 2006
Сообщений: 107
не совсем понятна задача.
чем EventDispatcher плохо?
да target не получается заменять. мне тоже это показалось странным.
нужно будет свои евенты наследовать и реализовывать.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Всплытие нативно поддерживается только DisplayObject'ом (участвует его #parent). Можете построить аналогичную систему или стройте иерархию, используя базовыми классами Shape, Sprite, etc.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 14.10.2010, 17:40
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 4  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Так вот и спрашиваю, как построить аналогичную систему =)
DisplayObject — крайний случай.
__________________
Поймай яблоко 2!

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

Регистрация: Sep 2002
Сообщений: 30,787
Собственно, target можно хранить статически во время всплытия.

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

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Чтобы сохранить таргет (только для своих классов Event-ов)
1) override get target
2) override clone


Последний раз редактировалось zuxul; 14.10.2010 в 19:10. Причина: не могу писать без опечаток
Старый 14.10.2010, 18:31
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
etc нельзя. тогда произойдёт колапс, когда одно событие рождает другое.

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
etc нельзя. тогда произойдёт колапс, когда одно событие рождает другое.
А, ну да, простите.

Старый 14.10.2010, 20:31
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 9  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Теперь target всегда сохраняется при клонировании и его не нужно явно передавать в конструктор MyEvent()

Код AS3:
package {
 
	import flash.events.Event;
 
	/**
	 * ...
	 * @author Vadim BELLinSKY
	 */
 
	public class MyEvent extends Event {
 
		private var _target:Object;
 
		public function MyEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, target:Object = null):void	{
			super(type, bubbles, cancelable);
			this._target = target;
		}
 
		override public function clone():Event {
			return new MyEvent(super.type, super.bubbles, super.cancelable, this.target);
		}
 
		override public function get target():Object {
			return this._target ? this._target : super.target;
		}
	}
}
UPD
Вообще все затевается ради всплывания событий в дереве моделей... я начинаю думать, что это лишнее.
Зачем какой-то модели следить не за непосредственно подопечными, а и за их подопечными.
Ну т.е. если меняется дочерняя модель — событие CHANGE, на которое реагирет изменениями текущая модель, что вызывает тот же CHANGE уже для его родителя.
Поправьте, есличё.
__________________
Поймай яблоко 2!


Последний раз редактировалось Zebestov; 20.03.2011 в 16:34.
Старый 14.10.2010, 21:45
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
из последний 3х предложений не понял ничего.

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

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

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


 


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


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