为什么我在尝试访问facebook graph api照片时收到了Flash播放器安全性错误?

时间:2015-02-06 20:12:35

标签: actionscript-3 flash actionscript

我正在使用闪存调试播放器(版本16),我正在尝试从闪存a​​s3中访问用户照片。首先,我收到的安全错误,就在这里。

SecurityError:错误#2122:安全沙箱违规:Loader.content:http s://graffiti-galore.herokuapp.com/fb/GraffitiGalore.swf?build = 0001无法访问http s:// fbcdn-profile- a.akamaihd.net/hprofile-ak-xfp1/v/t1.0-1/c46.46.570.570/s50x50/398269_10152199084495525_2139734276_n.jpg?oh=29be37fd74f7d338a7b5c23b9aadd474&oe=5548F552&gda=1431395518_d142c304e8b8afa8df340e6cac093b29 。策略文件是必需的,但加载此媒体时未设置checkPolicyFile标志。     在flash.display :: Loader / get content()     在PictureBox / onCompleteLoadingImage()

我正在使用正在提供的免费Heroku dino,我只是对图形api用户对象进行了一次调用。获取id,first_name,last_name,picture。

图片网址在https facebook服务器上托管。

https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfp1/v/t1.0-1/c46.46.570.570/s50x50/398269_10152199084495525_2139734276_n.jpg?oh=29be37fd74f7d338a7b5c23b9aadd474&oe=5548F552&gda=1431395518_d142c304e8b8afa8df340e6cac093b29

如上所述的链接。出于某种原因,每当从我的flash as3 facebook app加载图像时,我都会收到此安全错误。

以下是我用于获取图片的代码。

[代码]         public function setupPhoto(url:String):void         {             removeAllChildren()删除;

        var urlRequest1:URLRequest = new URLRequest(url);

        this.loader1 = new Loader();

        this.loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteLoadingImage);
        this.loader1.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onErrorLoadingImage);

        this.loader1.load(urlRequest1);

        //imageLoader = new ImageLoader(url);
        //imageLoader.addEventListener(Event.COMPLETE, onCompleteLoadingImage);
        //imageLoader.load();

    }

    private function onErrorLoadingImage(e:IOErrorEvent):void 
    {
        debugPanel.writeLine("ERROR LOADING IMAGE!!!");
        debugPanel.writeLine(e.text);
    }
    public function onCompleteLoadingImage(e:Event):void
    {
        //var sprite:Sprite = this.loader1.content as Sprite;
        //updatePicture(sprite);
        updatePicture1(this.loader1.content);
    }

[/代码]

1 个答案:

答案 0 :(得分:1)

这适用于Facebook:

var lc:LoaderContext = new LoaderContext(true, null, null);
// now add the LoaderContext to your loader
this.loader1.load(urlRequest1, lc);

您不必每次都创建一个LoaderContext,只需创建一次并随处使用。