Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.display.DisplayObject;
- import flash.display.DisplayObjectContainer;
- import flash.display.Sprite;
- import flash.display.Stage;
- import flash.display.StageAlign;
- import flash.events.ErrorEvent;
- import flash.events.Event;
- import flash.events.UncaughtErrorEvent;
- import flash.utils.setTimeout;
- public class TestFakeStage extends Sprite
- {
- private var fakeStage:Sprite;
- private var s:Array;
- private var _errorsOcccurred:int = 0;
- public function TestFakeStage()
- {
- loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);
- fakeStage = new Sprite();
- fakeStage.name = "fakeStage";
- fakeStage.addEventListener(Event.ADDED, addedHandler);
- // generate real event sequence
- generateEvents(stage);
- trace("");
- // generate fake event sequence
- generateEvents(fakeStage);
- }
- private function generateEvents(r:DisplayObjectContainer):void
- {
- s = [];
- trace("Generating event sequence...");
- trace("=====================================================");
- createSprite("a1");
- s["a1"].addChild(createSprite("a2"));
- r.addChild(s["a1"]);
- s["a1"].addChild(createSprite("a3"));
- r.addChild(createSprite("b1"));
- s["b1"].addChild(createSprite("b2"));
- }
- private function createSprite(sprName:String):Sprite
- {
- var spr:Sprite = s[sprName] = new Sprite();
- spr.name = sprName;
- spr.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
- return spr;
- }
- private function addedHandler(event:Event):void
- {
- // fire fake ADDED_TO_STAGE
- if (event.target != fakeStage)
- generateFakeEvent(event.target as DisplayObject);
- }
- private function addedToStageHandler(event:Event):void
- {
- var cTarget:DisplayObject = event.currentTarget as DisplayObject;
- var target:DisplayObject = event.target as DisplayObject;
- trace(cTarget.name + " reported: " + target.name + " added to Stage");
- }
- private function generateFakeEvent(target:DisplayObject):void
- {
- target.dispatchEvent(new Event(Event.ADDED_TO_STAGE));
- if (target is DisplayObjectContainer)
- {
- var cont:DisplayObjectContainer = target as DisplayObjectContainer;
- for (var i:int = 0; i < cont.numChildren; i++)
- {
- generateFakeEvent(cont.getChildAt(i));
- }
- }
- }
- private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
- {
- _errorsOcccurred++
- if (event.error is Error)
- {
- var error:Error = event.error as Error;
- }
- else if (event.error is ErrorEvent)
- {
- var errorEvent:ErrorEvent = event.error as ErrorEvent;
- }
- else
- {
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment