2012-12-17 14 views
2

我有一個Flex 4應用程序,通過使用mx.controls.SWFLoader組件加載Flex 4應用程序。我每次加載同一個swf-subapp幾次,因爲每個subapp也獨立運行,並且subapp的內容由我通過加載器上下文傳入的XML確定。爲什麼我的第二個加載的子應用程序在FlexEvent.INITIALIZE後停止

這工作直到最近,但現在,我第二次加載相同的SWF文件(用不同的XML)加載的SWF文件停止執行任何東西FlexEvent.INITIALIZE被觸發後(我沒有做我的初始化什麼事件處理程序)。換句話說,我沒有得到一個CreationComplete事件,這是我開始我的代碼的地方(更糟糕的是,也沒有錯誤)。

由於我一直在研究我的主應用程序的不同部分,我不記得哪個更改會使我的項目崩潰,但我記得的是我更新了我的Flex SDK,並且我已經使用了類似的沉默與之前的SDK升級有關的錯誤。

在我的主應用程序中,在加載一個新的swf之前,我自己清理一下,所以它不應該是垃圾堆放。

請幫忙!

+0

您最近是否更改過您使用的Flash播放器的版本? – Jason

+0

沒有。這與我開始項目時的情況相同。 –

+0

可否請您發佈一些代碼來重現此行爲(如果您決定發佈樣本或將其從大型項目中複製出來,也可以自行編寫該代碼)?以及你的SDK和播放器版本是什麼? – www0z0k

回答

0

解決了它。

有一個enterFrame事件處理程序,保持了SWF的第一個實例在內存中,以某種方式阻止加載下一個(eventhough我用父容器上removeAllElements並希望會做的伎倆)。

現在我使用NativeSignal並從onRemove處理程序(RobotLegs)上刪除所有偵聽器。奇蹟般有效。

相關問題