2014-12-02 28 views
1

典型的AS3代碼會是這樣loadermax獲得合格的類名的SWF

private function load():void { 
     var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain); 

     if(Security.sandboxType == Security.REMOTE) { 
      loaderContext.securityDomain = SecurityDomain.currentDomain; 
     } 

     loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit); 
     loader.load(new URLRequest("capture.swf"), loaderContext); 
    } 

    private function handleInit(event:Event){ 
     var className:String = getQualifiedClassName(loader.content); 
     var classRef:Class = loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; 
     var captureModule = new classRef(); 
     addChild(captureModule as DisplayObject); 
    } 

現在同時使用GreenSock的loadermax,我怎麼能訪問的類名,它的參考,創建一個對象,我和添加到顯示。

loaderMax.append(new SWFLoader("capture.swf", {name:"capture"})); 
loaderMax.append(new SWFLoader("filter.swf", {name:"filter"})); 
loaderMax.load(); 

的loadComplete功能

 function completeHandler(event:LoaderEvent): void { 
      trace(event.target + " is complete"); 
      var capture = loaderMax.getContent("capture"); 
      trace(getQualifiedClassName(capture)); //want to reach the custom class of the loaded sf 
     } 

回答

0

原來,加載的SWF有一個屬性loaderInfo.loader您可以訪問使用加載器。

var loader = loaderMax.getContent("capture").rawContent.loaderInfo.loader; 
this.data["capture"] = loader.contentLoaderInfo.applicationDomain.getDefinition(getQualifiedClassName(loaderMax.getContent("capture").rawContent)) as Class;