1
我試圖將加載到Amazon S3(b.com)上的swf加載到不同域(a.com)上的swf,並且它會拋出此錯誤錯誤AS3:嘗試加載場外swf時沙盒違規
SecurityError: Error #2121: Security sandbox violation: Loader.content:http://www.a.com/loader.swf cannot accesshttp://b.com/loadee.swf. This may be worked around by calling Security.allowDomain.
at flash.display::Loader/get content()
兩個a.com和b.com對他們的根crossdomain.xml的,看起來像
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
我試圖加載的SWF(b.com/loadee.swf )已經由軟件生成,所以我不能將Security.allowDomain(「*」)添加到它或類似的東西。
我可以用某種方式加載這個swf,還是我用a.com卡住一切?如果可能的話,我也希望loader.swf和loadee.swf能夠通信(傳遞變量和進行函數調用) 。這是我在loader.swf
Security.allowDomain("*");
Security.allowInsecureDomain("*");
Security.loadPolicyFile("http://b.com/crossdomain.xml");
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
loaderContext.allowCodeImport = true;
var loader:Loader = new Loader();
loader.load(new URLRequest("http://b.com/loadee.swf"), loaderContext);
如果任何人有任何想法,我會非常感激。
我只是一個自制loadee.swf測試,直到我說的Security.allowDomain(它扔了同樣的錯誤「*」 )。您可能會認爲Adobe會允許使用第三方應用程序製作的外部swf文件:O – aethys 2010-11-17 13:48:16
當然可以。 SWF是一個開放標準,您可以加載/修改第三方應用程序(如FlashDevelop)製作的SWF。它需要高技能,但它是可能的。 – 2010-11-17 13:52:00