package com.site { import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.events.Event; import flash.net.getClassByAlias; import flash.net.URLRequest; import flash.utils.getDefinitionByName; import flash.utils.getQualifiedClassName; public class Main extends Sprite { //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. */ public function Main() { super(); trace("new Main"); singleton2 = Singleton2.getInstance(); part1 = new Loader(); part1.load(new URLRequest("part.swf")); part1.contentLoaderInfo.addEventListener(Event.INIT, part_initHandler); addChild(part1); part2 = new Loader(); part2.load(new URLRequest("part.swf")); part2.contentLoaderInfo.addEventListener(Event.INIT, part_initHandler); addChild(part2); } //-------------------------------------------------------------------------- // // Private Properties // //-------------------------------------------------------------------------- private var part1:Loader; private var part2:Loader; private var partsLoaded:int = 0; private var singleton2:Singleton2; //-------------------------------------------------------------------------- // // Private Methods // //-------------------------------------------------------------------------- private function part_initHandler(event:Event):void { LoaderInfo(event.target).removeEventListener(Event.INIT, arguments.callee); partsLoaded ++; if (partsLoaded >= 2) { trace("////////////////////////////////////////"); var obj1:Object = part1.content["singleton1"]; var cls1:Class = part1.content["singleton1Class"]; // output : [object Singleton1] trace(obj1); // output : [class Singleton1] trace(cls1); // output : com.site::Singleton1 trace(getQualifiedClassName(obj1)); ////////////////////////////////////////////////// var obj2:Object = part2.content["singleton1"]; var cls2:Class = part2.content["singleton1Class"]; // output : [object Singleton1] trace(obj2); // output : [class Singleton1] trace(cls2); // output : com.site::Singleton1 trace(getQualifiedClassName(obj2)); ////////////////////////////////////////////////// // output : true trace(obj1 is cls1); // output : true trace(obj2 is cls2); // output : false trace(cls1 == cls2); // output : false trace(obj1 is cls2); // output : false trace(obj2 is cls1); trace("////////////////////////////////////////"); var obj3:Object = part1.content["singleton2"]; var cls3:Class = part1.content["singleton2Class"]; // output : [object Singleton2] trace(obj3); // output : [class Singleton2] trace(cls3); // output : com.site::Singleton2 trace(getQualifiedClassName(obj3)); ////////////////////////////////////////////////// var obj4:Object = part2.content["singleton2"]; var cls4:Class = part2.content["singleton2Class"]; // output : [object Singleton2] trace(obj4); // output : [class Singleton2] trace(cls4); // output : com.site::Singleton2 trace(getQualifiedClassName(obj4)); ////////////////////////////////////////////////// // output : true trace(obj3 is cls3); // output : true trace(obj4 is cls4); // output : true trace(cls3 == cls4); // output : true trace(obj3 is cls4); // output : true trace(obj4 is cls3); } } } }