От загрузчика к растровому изображению AS3 Flex - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь загрузить изображения из альбомов Facebook в мое гибкое приложение. Этот код вызывается при нажатии на изображение 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), потому что я использую его в других функциях.

Я пробовал другое решение, но, возможно, я где-то допускаю ошибки.

Не могли бы вы мне помочь?Надеюсь, все ясно.Большое спасибо

РЕДАКТИРОВАТЬ:

Проблема была не в синтаксисе, а в файле политики безопасности, мне пришлось добавить его:

in 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 Ответ

1 голос
/ 26 марта 2012
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);
}

Попробуйте, если вы не хотите изменять размер загруженного изображения, надеюсь, это поможет

...