Показать сообщение отдельно
Старый 25.10.2013, 19:06
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 3  
Ответить с цитированием
Akopalipsis
Banned

Регистрация: Mar 2013
Сообщений: 1,864
in4core сейчас я расскажу Вам в чём дело.
От кода ниже я ожидал, что сначала в ДОК добавится Main, а уже потом Sprite.
Но на деле наоборот.
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite
	{
		private var _view:View;
		public function Main() 
		{
			if (stage)init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		private function init(event:Event=null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			_view = new View(this);
			var sprite:Sprite = new Sprite();
			_view.addedChild(sprite);
		}
	}
}
Код AS3:
package 
{
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.events.Event;
 
	public class View 
	{
		private var _doc:DisplayObjectContainer;
 
		public function View(doc:DisplayObjectContainer) 
		{
			_doc = doc;
			_doc.addEventListener(Event.ADDED, doc_addedHandler);
		}
		public function addedChild(child:DisplayObject):void
		{
			_doc.addChild(child as DisplayObject);
		}
		private function doc_addedHandler(event:Event):void 
		{
			trace(event.target);
		}
 
	}
}