从Loader到Bitmap AS3 Flex

时间:2012-03-26 13:49:15

标签: facebook actionscript-3 flex bitmap loader

我正在尝试将图像从Facebook相册加载到我的flex应用程序,这是我点击FB图像时调用的代码:

        private var loaderFB:Loader;
        private var immCaricata:Bitmap = new Bitmap();

        //Function where i pass the url of the FB image clicked
        private function getFBImage(src:String):void{
            var request:URLRequest;
            loaderFB=new Loader();              
            request=new URLRequest(src);
            loaderFB.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompleteFBget);
            loaderFB.load(request);
        }

        private function onCompleteFBget(event:Event):void {
            var bitmap_dataFB:BitmapData = new BitmapData(640, 480);
            bitmap_dataFB.draw(loaderFB.content);
            immCaricata = new Bitmap(bitmap_dataFB);
            displayOut.addChild(immCaricata);
        }

它不起作用!

如果我通过

displayOut.addChild(loaderFB); //instead displayOut.addChild(immCaricata);

它就像一个魅力!

我的问题是我需要将加载程序内容传递给该位图(immCaricata),因为我在不同的其他函数中使用它。

我尝试了不同的解决方案,但可能我在某处犯了一些错误。

你能帮帮我吗?希望很清楚。 非常感谢你

修改

问题不是语法而是安全策略文件,我不得不添加它:

init 功能

中的

Security.loadPolicyFile("http://graph.facebook.com/crossdomain.xml");
Security.loadPolicyFile("http://profile.ak.fbcdn.net/crossdomain.xml");

然后我加载图片的地方

            loaderFB=new Loader();              
            request=new URLRequest(src);
            loaderFB.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompleteFBget);
            var lc:LoaderContext = new LoaderContext();
            lc.checkPolicyFile = true;
            loaderFB.load(request,lc);
            controlloImm = true;

希望很明确,希望它可以帮助别人。 :)

1 个答案:

答案 0 :(得分:1)

private var loaderFB:Loader;
private var immCaricata:Bitmap;

//Function where i pass the url of the FB image clicked
private function getFBImage(src:String):void{
    var request:URLRequest;
    loaderFB=new Loader();              
    request=new URLRequest(src);
    loaderFB.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompleteFBget);
    loaderFB.load(request);
}

private function onCompleteFBget(event:Event):void {

    immCaricata = event.target.content as Bitmap;
    displayOut.addChild(immCaricata);
}

如果您不想更改加载的图像大小,请尝试此操作,希望这会有所帮助