Я следовал этому уроку Загрузка изображения профиля Facebook во Flash SWF с помощью Graph API , чтобы изображение профиля пользователя отображалось в моей флэш-игре, но у меня возникли некоторые проблемы.
import com.facebook.graph.Facebook;
import com.facebook.graph.data.FacebookSession;
import com.facebook.graph.net.FacebookRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;
//place your APP ID here
const APP_ID:String = "app_id";
//Initialize facebbok library
Facebook.init(APP_ID, HandleLogin);
function HandleLogin(response:Object, fail:Object):void
{
if(Facebook.getSession().accessToken)
{
LoadMyInfo();
LoadMyPicture();
}
}
function LoadMyInfo():void
{
Facebook.api("/me", MyInfoLoaded);
}
function MyInfoLoaded(response:Object, fail:Object):void
{
nameTextField.text = response.name;
}
function LoadMyPicture():void
{
debug.text = "Entered loadMyPicture() function ";
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, MyPictureLoaded, false, 0, true);
var request:URLRequest = new URLRequest("facebookProxy.php");
var variables:URLVariables = new URLVariables();
variables.path = Facebook.getImageUrl(String(Facebook.getSession().uid), 'large');
debug.appendText(" \nvariables.path: " + String(variables.path));
request.data = variables;
debug.appendText(" \nrequest.data: " + String(request.data))
loader.load(request);
debug.appendText(" \n" + String(loader.load(request)));
}
function MyPictureLoaded(event:Event):void
{
debug.appendText(" \nEntering MyPictureLoaded");
var loader:Loader = event.target.loader;
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, MyPictureLoaded);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, MyPictureLoadError);
var bitmap = Bitmap(loader.content);
bitmap.smoothing = true;
//Note: picturePlaceholder is just a blank movie clip on the Stage
bitmap.x = picturePlaceHolder.x;
bitmap.y = picturePlaceHolder.y;
bitmap.width = picturePlaceHolder.width;
bitmap.height = picturePlaceHolder.height;
picturePlaceHolder.addChild(bitmap);
debug.appendText(" \nBitmap is null: " + String(bitmap == null) +
" \nBitmap X: " + String(bitmap.x) + " Bitmap Y: " + String(bitmap.y) +
" \nBitmap width: " + String(bitmap.width) +
" \nBitmap height: " + String(bitmap.height))
}
function MyPictureLoadError(e:IOErrorEvent):void
{
debug.appendText("Loading Error");
}
Вот так выглядит мой код после следования учебникам по ссылке выше.При отладке я заметил, что функция MyPictureLoaded никогда не вызывается.
Они никогда не указывали, где я буду вызывать функцию LoadMyPicture .Я предполагал, что это пойдет вместе с LoadMyInfo , поэтому я поместил его туда.У них есть рабочий пример, но нет исходного кода, поэтому я надеюсь, что кто-то здесь мог бы пролить свет на это.
РЕДАКТИРОВАТЬ 1
Здесь это то, на что это похоже, когда я помещаю это на Facebook.Последняя строка debug.appendText ("\ n" + String (loader.load (request))); выводит неопределенное значение.Я также внес изменения в variables.path = Facebook.getImageUrl (String (Facebook.getSession (). Uid), 'large'); Я добавил (String (), 'large').) потому что в документах говорится, что туда нужно вводить строки. Редактировать: я понял, что добавлять String () бессмысленно.