2014-04-25 71 views
0

我正在開發AS3/Flash遊戲,當我們在成功登錄後將我們的主頁swf加載到我們的登錄swf中時遇到問題。Actionscript 3 - 在我的swf中加載另一個swf時列出錯誤

TypeError: Error #2007: Parameter child must be non-null. 
at flash.display::DisplayObjectContainer/addChildAt() 
at fl.controls::BaseButton/drawBackground() 
at fl.controls::LabelButton/draw() 
at fl.controls::Button/draw() 
at fl.core::UIComponent/drawNow() 
at fl.controls::List/drawList() 
at fl.controls::List/draw() 
at fl.core::UIComponent/callLaterDispatcher() 

我們正在Flash Builder中開發,將帶藝術作品和組件的.swc導入到我們的項目中。我們加載我們的主頁SWF並將其添加爲顯示對象是這樣的:

private function LoadComplete(e:Event):void 
    { 
     //trace("LoadComplete"); 
     m_loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, LoadProgress); 
     m_homePage = e.target.content as DisplayObject; 
    } 

添加它:

addChild(m_homePage as DisplayObject); 

有沒有更好的方式來一個swf加載到另一個swf?當我們通過登錄swf加載主頁swf時,爲什麼會出現錯誤,而不是在我們單獨調試主頁時發生錯誤?

任何建議將是非常有益的。

+0

嘗試直接添加'm_loader'本身:'addChild(m_loader)' – Cherniv

回答

0

如果要執行自己的SWF內外部SWF,你將需要使用SWFLoader

<mx:SWFLoader 
    id="sfwLoader" 
    width="100%" 
    height="100%"/> 

和負載代碼:

protected function loadSWF():void 
{ 
    var loader:URLLoader = new URLLoader(); 
    loader.dataFormat = URLLoaderDataFormat.BINARY; 
    loader.addEventListener(Event.COMPLETE, onSWFLoaded); 
    loader.load(new URLRequest("app-storage:/myOther.swf")); // sample location 
} 


protected function onSWFLoaded(e:Event):void 
{ 
    var loader:URLLoader = URLLoader(e.target); 
    loader.removeEventListener(Event.COMPLETE, onSWFLoaded); 
    var context:LoaderContext = new LoaderContext(); 
    context.allowLoadBytesCodeExecution = true; 
    context.applicationDomain = ApplicationDomain.currentDomain; 
    sfwLoader.loaderContext = context; 
    sfwLoader.addEventListener(Event.COMPLETE, loadComplete); 
    sfwLoader.load(loader.data); 
} 

protected function loadComplete(completeEvent:Event):void 
{ 
    var swfApplication:* = completeEvent.target.content; 
} 

這laods任何SWF,所以它的潛在的安全孔。問候提供安全性,你可以檢查:http://mabulous.com/air-applications-that-can-be-updated-without-requiring-admin-rights

相關問題