St.*_*son 2 flash gravatar crossdomain.xml actionscript-3
我正在尝试将Gravatars加载到Flash中.幸运的是,他们提供了一个crossdomain.xml文件http://en.gravatar.com/avatar/crossdomain.xml
我的代码:
Security.loadPolicyFile("http://en.gravatar.com/avatar/crossdomain.xml");
var loader:Loader = new Loader();
loader.load(new URLRequest("http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon"));
Run Code Online (Sandbox Code Playgroud)
但我仍然收到这个错误:
SecurityError:错误#2123:安全沙箱违规:LoaderInfo.content:[...]无法访问http://en.gravatar.com/avatar/97fbce86a5bbc520450168603172cd9e?s=35&d=identicon.没有授予访问权限的策略文
at flash.display :: LoaderInfo /获取
PiecePlayerSmall/onLoadComplete()上的内容()
我还监控了Flash文件发送的流量.它要求:
任何有关使其工作并减少对gravatar.com的请求数量的建议.
编辑: 以下代码工作,感谢雅各布
Security.loadPolicyFile("http://en.gravatar.com/avatar/crossdomain.xml");
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
context.applicationDomain = ApplicationDomain.currentDomain;
var request:URLRequest = new URLRequest(
"http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon");
var loader:Loader = new Loader();
loader.load(request, context);
this.addChild(loader);
Run Code Online (Sandbox Code Playgroud)
注意:请勿尝试直接在Event.COMPLETE中访问内容
我使用LoaderContext解决了类似的问题.以下是如何执行此操作的示例:
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
var request:URLRequest = new URLRequest(
"http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon");
var loader:Loader = new Loader();
loader.load(request, context);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9885 次 |
最近记录: |