我试图在我的闪存项目中缓存一些图像,因为这些图像可以经常被查看。问题是我总是有沙箱违规错误。我正在用Loader的实例获取图像。我将向您展示我的源代码如下:
Security.loadPolicyFile("https://photos-4.dropbox.com/crossdomain.xml");
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
var newLdr:Loader = new Loader();
newLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, onCloudImageComplete);
newLdr.load(new URLRequest(this.thumbUrl), loaderContext);
在这里,我粘贴了我的错误:
SecurityError: Error #2123: Security sandbox violation: LoaderInfo.content: http://picapoco.local/swf/poUploader_v3.0.swf cannot access https://photos-4.dropbox.com/t/0/AADzWqfBfPvOfff1q0JaIm7Z5EaG8C1MNd-8Z1yCxaoWDg/12/189302658/jpeg/200x200/1/_/0/4/IMGP7780.JPG/yotcoll2bm4le7h/kpHeca7yyu/IMGP7780.JPG. No policy files granted access.
at flash.display::LoaderInfo/get content()
at picapoco.models::Picture/onCloudImageComplete()
有什么线索可以帮我解决吗?
发布于 2013-08-02 12:29:55
链接到的crossdomain.xml文件只允许来自*.dropbox.com
的连接。因此,您必须在dropbox.com域上运行应用程序,以便从基于浏览器的Flash访问文件。
假设您不是为DropBox工作,并且有权在dropbox.com域中部署SWF,下面是几个选项:
理论上,您可以将SWF上传到您的dropbox帐户,但我并不期望获得很好的性能;因为dropbox的设计并不像web主机那样具有响应性。
您可以对本地主机文件做一些工作,以便在"dropbox.com“域上为SWF服务。这对生产目的不可行,但可能有助于发展。
您可以将应用程序部署为AIR应用程序--无论是桌面应用还是移动应用程序--以避免跨域问题。
您可以使用服务器端代理为您加载图像。您的应用程序将调用代理服务,代理服务将依次从拖放框加载图像,并将图像返回到应用程序。这是最实际的选择。
https://stackoverflow.com/questions/18013985
复制相似问题