2008-10-22 25 views
0

我的Flash(AS3/AIR)應用程序當前正在使用稍微不尋常的體系結構(對於Flash應用程序)在運行時爲加載的內容提供特定的基類。外部內容與「存根」基類一起發佈,它們在加載時由運行時的「真實」基類黯然失色。我聽說這個由Adobe引用的bootstrappingpdf),它一直在我工作得很好,直到現在。這與我相信的DLL架構不同,儘管我沒有資格肯定地說。「引導」遠程swf到應用程序SecurityDomain(actionscript3)

到目前爲止,我一直在加載的外部內容已經從相同的SecurityDomain(相同的沙箱)中加載,這使我可以輕鬆地加載兒童內容ApplicationDomain。不幸的是,據我所知,一個ApplicationDomain s跨越SecurityDomain s是不能相關的 - 也就是說,我不能將一個SecurityDom的AppDom作爲來自另一個SecurityDom的AppDom的孩子。

但現在我需要從我的應用程序沙箱外加載這個外部內容。有很多方法可以在SecurityDomain之間實現溝通 - 儘管其中大多數都非常有限,但AIR的sandboxBridge API可能是最強大的。不幸的是,這些通信方法都不允許我實現這種引導架構。

我注意到LoaderContext對象有一個securityDomain屬性,但Flash安全性禁止'本地swfs'觸及它(它會拋出一個SecurityError或類似的東西)。

Flex的SWFLoadertrustContent屬性,看起來很有希望,但我傾向於認爲它具有相同的限制在設定SecurityDomainLoaderLoaderContext

我懷疑我不得不重新設計(這並不容易),但我想我只是在這裏檢查一下,我沒有在我的研究中遺漏任何東西。

那麼...任何想法或智慧的珍珠?如果有人從安全模型的Adobe工作,可以給我一個明確的「是/否,它可以/不可以完成」,我特別想知道如何愛它...

在此先感謝!

附錄:我已經決定重新設計架構,以便引導都發生在外部域。然而,出於好奇,我的問題依然存在。

+0

你最終使用了什麼方法? :)我發佈了一個有點相關的q這裏stackoverflow。com/questions/1020397/...,很想得到它的反饋/因爲它似乎你一直在與第三方外部瑞士法郎:) – eglasius 2009-06-20 00:59:37

+0

弗雷迪,我想知道我的問題是否有點過時了,因爲我寫時FP10處於測試階段。 – aaaidan 2010-08-11 02:39:02

回答

1

在撰寫本文時,我確定如果來自其他域,即使使用AIR,也不能將ApplicationDomain加載到您自己的SecurityDomain中。

按設計,我想。

1

從技術上講,您的AIR應用程序是不是可以簡單地將外部SWF保存在您的應用程序目錄中,然後從那裏加載它們以便它們位於同一個安全沙箱中?

但是,有一些真正明顯的原因是爲什麼這會是Bad Karma,所以看起來任何解決方案都必然會引發一個問題,試圖將本地應用程序內容和遠程不受信任的內容放入同一個應用程序域是否是正確的體系結構辦法..?