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);
}
}
}