從匯入安全性網域中的 SWF 檔載入內嵌內容

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

當您載入 SWF 檔時,可以設定用來載入檔案的 Loader 物件之 load() 方法的 context 參數。這個參數會接受 LoaderContext 物件。當您將此 LoaderContext 物件的 securityDomain 屬性設定為 Security.currentDomain 時,Flash Player 就會檢查被載入端 SWF 檔之伺服器是否有 URL 原則檔。如果有原則檔,而且此檔案允許載入端 SWF 檔的網域存取,就可以將 SWF 檔載入為匯入的媒體。如此一來,載入的檔案就可以存取 SWF 檔元件庫中的物件。

另外一種方式也可以讓 SWF 檔存取從不同安全執行程序之被載入端 SWF 檔中的類別,就是讓被載入端 SWF 檔呼叫 Security.allowDomain() 方法,以授與呼叫的 SWF 檔網域存取權限。您可以將 Security.allowDomain() 方法呼叫加入被載入端 SWF 檔主類別的建構函式方法中,然後讓載入端 SWF 檔加入事件偵聽程式,以回應由 Loader 物件的 contentLoaderInfo 屬性所傳送的 init 事件。傳送此事件時,載入的 SWF 檔已呼叫建構函式方法中的 Security.allowDomain() 方法,而被載入端 SWF 檔中類別可供載入端 SWF 檔使用。載入端 SWF 檔可以呼叫 Loader.contentLoaderInfo.applicationDomain.getDefinition() 或 Loader.contentLoaderInfo.applicationDomain.getQualifiedDefinitionNames(),從被載入端 SWF 檔擷取類別 (Flash Player 11.3 及更新版本,以及 AIR 3.3 及更新版本)。