0

我在 vk.com 中有一个 iframe 应用程序。我可以使用他们的 API,一切看起来都很好,但是当我想加载配置文件图像时,我得到了安全沙箱错误。当我打印结果和错误时,我得到这个:(我正在使用 Greensock ImageLoader)

MYURL: “vk 的 cs408919 子域上的我的图像 URL”在 cs408919上
加载 CrossDomain
ScriptAccessDenied:错误 #2048
SecurityError:错误 #2048
错误:错误 #2048
ScriptAccessDenied:错误 #2123 违反安全沙盒,没有授予策略文件访问权限

在我看来 crossdomain.xml 问题,但我找不到正确的问题。谢谢...

4

2 回答 2

1

除了 fsbmain 的回答,我想说您必须添加以下代码:

Security.allowDomain("*");
于 2013-05-27T13:47:51.283 回答
0

是的,这是跨域问题,图像的 vk 子域不提供crossdomain.xml用户头像,但您仍然可以加载(并添加到显示列表)它们。你不能做的是访问加载的内容(smooth例如设置位图标志,或者draw上面有 vk 图像的孔阶段)。

如果您需要访问内容,您可以使用这个“policy-hack”,但它是 hack,所以它可以在任何 FP 更新中修复(我想即使这个答案也可能更接近这一刻:)):

这个想法是如果图像加载器监听 ADDED 事件:

protected var _prepareloaderBitmap:Bitmap;

_prepareloader.addEventListener(Event.ADDED, onPrepareLoader);
_prepareloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onPrepareLoader);

和听众:

protected function onPrepareLoader(event:Event):void
{
    //event ADDED fired only for Bitmap (not for SWFs)
    if(event.type == Event.ADDED)
    {
        _prepareloaderBitmap = event.target as Bitmap;
    }
    else if (event.type == Event.COMPLETE)
    {
        if(_prepareloaderBitmap)
        {
            trace("loaded image size:", _prepareloaderBitmap.width, "x", _prepareloaderBitmap.height);
        }
    }
}

有了对加载的引用,Bitmap您现在可以添加它而不是跨域发布的加载器。

于 2013-05-19T11:12:46.870 回答