我已经尝试了一天以上让我的flex应用程序从外部源加载flash文件,但我不断收到以下错误。
我有一个带有通配符映射的跨域文件,我使用Security.allowDomain('*')。到底发生了什么?
*** Security Sandbox Violation ***
SecurityDomain 'http://somedomain/en/interface.swf?sessionid=38D1E0B7-5356-42FC-B692-4E1EA019FD9A&gametype=64&affiliateid=1¤cy=CHP&language=eng&freePlay=0' tried to access incompatible context 'file:///C:/_Projects/Casino_Old/FlashWrapperWorkspace/CasinoV2Loader/bin-debug/CasinoLoader.html'
我正在使用以下代码
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import mx.controls.Alert;
import mx.controls.SWFLoader;
import spark.modules.ModuleLoader;
protected function initApp():void
{
var url:String = "http://somedomain/servlet/com.goblinstudios.lollipop.servlet.CasinoGatewayProxy3?sessionid=38D1E0B7-5356-42FC-B692-4E1EA019FD9A&gametype=64&affiliateid=1¤cy=CHP&language=eng&freePlay=0";
Security.allowInsecureDomain("*");
Security.allowDomain('*');
var sprite:Sprite = new Sprite();
var loader:Loader = new Loader();
sprite.addChild(loader);
var lc:LoaderContext = new LoaderContext(true);
lc.checkPolicyFile = true;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest(url), lc);
}
private function onComplete(e:Event):void {
addElement(e.target.loader.content);
}
]]>
</fx:Script>
Crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="SOAPAction"/>
</cross-domain-policy>