2011-05-06 22 views
1

我有一個Flex應用程序,只是加載外部SWF,但應用程序無限加載和卸載我的SWF。Flex:當我加載本地外部SWF時,應用程序無限加載 - 卸載

的嵌入式AS3代碼是:

<![CDATA[ 

     import mx.events.FlexEvent; 

     private var m_Application:Application; 

     private function initGenderMenuApp(evt:FlexEvent):void{ 

      m_Application = evt.target as Application; 
      m_Application.removeEventListener(FlexEvent.APPLICATION_COMPLETE, initMenuApp); 
      var loader:Loader = new Loader(); 

      trace("initApp"); 
      loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onFailedLoad); 
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadedApp); 
      loader.load(new URLRequest("application.swf")); 

     } 
     private function onFailedLoad(evt:Event):void{ 

      trace("ERROR", evt.target); 
     } 

     private function onLoadedApp(evt:Event):void{ 


      trace("Loading Application.."); 
      var loaderInfo:LoaderInfo = evt.target as LoaderInfo; 
      loaderInfo.removeEventListener(Event.COMPLETE, onLoadedApp); 
      trace(loaderInfo.loader.content); 
      m_Application.addElement(new SpriteUIComponent(evt.target.loader.content as MovieClip));   
     } 

    ]]> 

SpriteUIComponent用於將SWF添加爲精靈在舞臺上。

Regards

+0

你的追蹤是什麼樣的? 「initApp」,「加載應用程序..」? – rzetterberg 2011-05-06 08:07:49

回答

0

您是否試圖加載與主應用本身相同的application.swf? (遞歸???)

+0

application.swf有一個Main.mxml ....而另一個應用程序有另一個Main.mxml,我加載了SWF。有關係嗎? – Manel 2011-05-06 09:40:06

+0

是的,它確實很重要... – Manel 2011-06-04 16:11:19

0

您可以添加2個額外的事件來更好地監視加載過程中發生了什麼。這兩個是HTTPStatusEvent.HTTP_STATUSProgressEvent.PROGRESS

他們以這種方式使用:

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); 

private function progressHandler(event:ProgressEvent):void { 
    trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); 
} 

private function httpStatusHandler(event:HTTPStatusEvent):void { 
    trace("httpStatusHandler: " + event); 
} 

現在你將有超過發生什麼更好的控制。你會看到有多少字節被加載,直到加載完成,你會看到是否有任何http錯誤。