Я надеюсь, что кто-нибудь сможет мне помочь. У меня есть следующая функция в FlashBuilder 4 с использованием AS3:
protected function doIt():void
{
if (ExternalInterface.available) {
var retData:String;
retData = ExternalInterface.call("returndata");
if(retData != null) {
eidLbl.text = retData.toString();
} else {
eidLbl.text = "Returned Null";
}
} else {
eidLbl.text = "External Interface not available";
}
}
и следующую функцию javascript, которую он вызывает:
var fql_query = "some query format";
function returndata(){
return fql_query;
}
Когда я запускаю их со своего сайта, все работает нормально! Flash-файл вызывает функцию javascript и возвращает «некоторый формат запроса» в правильное текстовое поле.
Однако, если я изменю свою функцию вспышки, чтобы она была следующей:
protected function doIt():void
{
if (ExternalInterface.available) {
var retData:String;
retData = ExternalInterface.call("runFQL",uidLbl.text);
if(retData != null) {
eidLbl.text = retData.toString();
} else {
eidLbl.text = "Returned Null";
}
} else {
eidLbl.text = "External Interface not available";
}
}
и следующую функцию javascript:
function runFQL(id){
var user_id = id;
var page_id = "**********"; // the page id that is actually there is valid
var fql_query = "SELECT uid FROM page_fan WHERE page_id="+page_id+" and uid="+user_id;
FB.api({
method: 'fql.query',
query: fql_query
},
function(response){
if (response[0]) {
var uid = response[0].uid;
window.alert(uid); //100001632043058
return uid;
} else {
window.alert("return 1000");
}
});
};
Моя проблема в том, что когда я запускаю этот, он передает идентификатор, запускает запрос и точно возвращает идентификатор и отображает его в предупреждении, НО (И ВОТ МОЯ ПРОБЛЕМА) он не передает его обратно, чтобы мигать Возврат. Каждый раз он возвращается как null или undefined.
Может ли кто-нибудь сказать мне, что мне не хватает. Я уже часами рыскал в гугле.