Показать сообщение отдельно
Старый 20.03.2011, 14:20
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
expl, в таком варианте событие будет клонироваться при каждом dispatchEvent.
Разве при вызове dispatchEvent оно клонируется. Это какая-то ерунда получается:
Код AS3:
dispatchEvent(new Event(Event.CHANGE));// Один раз создали и еще один раз склонировали?
Да, кстати currentTarget в моём подходе вообще не учитывается - без него как-то обходился

Проверил, НЕ клонируется.

Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.errors.IllegalOperationError;
	import flash.events.Event;
	import flash.events.EventDispatcher;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
 
			var object0:EventDispatcherWithBubbles = new EventDispatcherWithBubbles();
			var object1:EventDispatcherWithBubbles = new EventDispatcherWithBubbles();
			object1.eventParent = object0;
 
			object0.addEventListener(Event.CHANGE, onChange);
			_event = new Event(Event.CHANGE);
			object1.dispatchEvent(_event);
		}
 
		private var _event:Event;
 
		private function onChange(event:Event):void
		{
			if (_event !== event)
			{
				throw new Error("_event mast be equals event");// НЕ падает
			}
		}
	}
 
}


Последний раз редактировалось expl; 20.03.2011 в 14:33.