在Flash Builder中从Facebook加载图像

时间:2011-03-08 00:08:22

标签: flash image facebook load facebook-fql

我正在做一个Facebook应用程序,我想从用户的相册中提取所有可能的图像。

我目前正在尝试做的是一个fql查询,以便我可以找到属于该特定用户的所有图像。它就是这样的:

        protected function loadFromFacebook(event:MouseEvent):void {

            var fql:String = "select src_small from photo where owner = me()";              
            Facebook.fqlQuery(fql, handleGetPhotosResponse);

        }


        private function handleGetPhotosResponse(event:Object, fail:Object):void {
            if (event != null){

                facebookPhotos = new ArrayCollection(event as Array);

            } 
        }

我将这些图像存储在数组中但我不知道如何继续。如何将这些图像加载到Tile List或Loader中?

非常感谢任何帮助,

感谢

2 个答案:

答案 0 :(得分:0)

假设您是名为'tList'的TileList组件,您将在arraycollection上执行'for循环'并创建一个新映像,并在每次迭代时将其添加到TileList。

// I am not sure if the array collection contains photo urls, 
// but this is the general idea ...
// you may need to build the url with fb graph ...
for ( var i:uing = 0; i < facebookPhotos.length; i++ ) 
{
    var img:Image = new Image();
    img.load( facebookPhotos.getItemAt(i) ); // url here
    tList.addChild( img );
}

答案 1 :(得分:0)

你应该做一个接收结果对象和失败对象的处理函数。 结果对象是您使用fql请求的字段数组。

    protected function loadFromFacebook(event:MouseEvent):void {

        var fql:String = "select src_small from photo where owner = me()";              
        Facebook.fqlQuery(fql, handleGetPhotosResponse);

    }

    protected function handleGetPhotosResponse(result:Object, fail:Object):void
        {
            photosList = new ArrayCollection();
            var photo:Object;
            for (var i:Object in result)
            {
                photo = new Object();
                photo.imgSrc = result[i].src_small;
                photosList.addItem(photo);
            }
            provider = photosList;
        }