2009-06-19 40 views
0

我們正在將外部swf內容加載到adobe air應用程序中。內容由越來越多的第三方提供。作爲第三方內容,它將被加載到單獨的安全域(trustContent = false)和兄弟應用程序域(loadForCompatibility = true)中。我們正在使用Loader類來做這件事。第三方需要什麼限制/解決方法外部swf

使用swf作爲外部內容時會導致問題的功能/選項/方法是什麼?

我對任何類型的問題都感興趣,因爲我們已經複製了無論加載哪個應用程序域/安全域(並且同時出現在Loader和SWFLoader中)的內容的問題。

對這些問題的任何解決方法都非常感謝,特別是可以從主應用程序中應用的解決方法。

回答

1

這個令人討厭的問題(我們處理了很多!)是外部SWF根本無法直接信任的事實。永遠。這使得它們與基礎AIR應用程序之間的通信很難進行。

基於通過URLLoader加載SWF的數據,然後從其中獲取字節陣列並將其抽入裝載器,存在一個破解。不過,我相信黑客在AIR 1.5.1中遇難。這就是說,通過Adobe稱之爲沙箱橋的方式,可以在AIR應用程序和加載的SWF之間進行通信。然而,建立沙箱橋是一種皇室般的痛苦,任何複雜的數據(對象,即使像數組一樣簡單)都會被剝離到橋的另一側的通用對象,並且無法恢復到原始形式。

對於我們最近需要使用橋樑的項目,我們創建了一個名爲AIRBridge的專業課程,您可以在橋樑的兩側使用它,並且它可以方便地設置一切。如果您有興趣,可以從我們的谷歌代碼項目Automata-Tools中獲取當前源代碼。

+0

Thx很多勃蘭登的良好信息。這證實了我最近閱讀的關於在這個答案中發佈的鏈接中的空中安全模型:http://stackoverflow.com/questions/697155/is-there-an-way-to-load-external-swf-into-一個沙箱式閃存/ 698079#698079。我們目前沒有與第三方SWF進行任何溝通,但是當我們達成目標時,我們將會和我一起進一步研究該項目。您是否遇到過與外部內容有關的其他類型問題,即使用階段,根目錄和類似屬性? (最近讀過那些可以引入問題 - 但不能確定) – eglasius 2009-06-20 22:37:39

0

一個我們已經解決:

  • 內容的外部SWF舞臺表演外面中的應用,以及設置在那裏將要顯示的所考慮的臺下元件的尺寸時。 解決方法:在主應用程序上添加一個遮罩,以便隱藏外部內容。使用.content.width/height(全部含有舞臺元素)和.content.loaderInfo.width/height(原始舞臺大小)來計算縮放內容的大小,以便原始舞臺與可見區域相匹配。