我想把Gravatars装进Flash里。幸运的是,他们在http://en.gravatar.com/avatar/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"));但我还是发现了这个错误:
SecurityError:错误#2123:违反安全沙箱: LoaderInfo.content:.无法访问http://en.gravatar.com/avatar/97fbce86a5bbc520450168603172cd9e?s=35&d=identicon。没有授予访问权限的策略文件。 显示::LoaderInfo/get content() 在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);注意:不要尝试直接访问Event.COMPLETE中的内容
发布于 2009-07-07 07:42:53
我通过使用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);https://stackoverflow.com/questions/1088323
复制相似问题