2009-12-14 39 views
0

首先,背景:Flex應用程序相互作用以加載閃存的SWF

我建立與顯示各種動態加載的SWF,一次一個(種像亭)的分量的Flex應用程序。這些加載的SWF是在Flash IDE中創建的,而不是Flex。它們不會由我們創建(我們將提供一個.fla模板,但就是這樣),所以我將它們加載到單獨的SecurityDomain中。

我的問題:

  1. 我希望應用程序能夠調用加載的SWF中的方法。要做到這一點,我是否會在加載的SWF的啓動過程中調用Security.allowDomain(「從原始應用程序加載域」)?

  2. 我想要加載的SWF能夠拋出應用程序捕獲的事件。我可以通過SWFLoader.swfBridge屬性完成此操作嗎?

  3. 我正在爲加載的SWF中的方法定義一個接口。但是,我不想將實施留給客戶。相反,我想提供另一個包含接口實現的SWF,並將其作爲客戶將其包含在其SWF中的約束條件。我對Flash創作環境不是很熟悉,它將如何工作,以便接口實現SWF以Flex可訪問的方式公開其方法?有沒有辦法簽署SWF,以便Flex應用程序知道它正在處理原始文件,而不是欺騙? Flex代碼如何通過參數傳遞,因爲它跨越SecurityDomain邊界 - 是否存在編組(涉及到是否要傳入Dictionary或某種對象圖)?

  4. Flex應用程序可能會在其生命週期內加載數百個這些較小的其他SWF。我如何確保它不會佔用更多內存?我計劃使用SWFLoader.unloadAndStop()並清除引用它的Flex對象中的所有引用。這夠了嗎?將加載的SWF的AppDomain自動拆除,以便類定義不再在內存中?

感謝,

KARTHIK

+0

交叉引用後到Adobe論壇(用有用的答案)對於那些誰碰到過這樣的一個:http://forums.adobe.com/message/2458288 – Karthik 2009-12-14 09:27:52

回答

0

來自Adobe的Alex Harui在我的論壇發佈了一些非常有用的答案。如果你對這個問題感興趣,請檢查它們。

KARTHIK

0

一些答案:

2)號好了,你可以試試,但是這將是一個爛攤子。您可以查看一些引導程序加載文檔,但是如果您不完全控制Flash開發,這是一個失敗的原因,並且會以令您頭疼的方式結束。

根據您的體系結構,我會以通過javascript或localConnection進行通信的方式將所有內容抽象出來。使用localConnection來啓動(給出序列化大小限制等)可能會很痛苦,但是一旦你把所有東西都散列出來,你就不需要與所有的安全沙箱限制作鬥爭。我知道你希望一切都是安全的,但是如果你控制了服務器並且知道從哪裏加載swf(並且可以添加你發明的大量安全層[例如:將一個加載的swf與服務器對話當加載]),你可能會更好。

隨機想法.... 祝你好運在任何情況下。

相關問題