Проблема с ExternalInterface во Flash / JavaScript и WRT
Я делаю WRT приложение, которое использует вспышку внутри. Дело в том, что я должен передать параметры в SWF через JavaScript. Итак, я создал функцию в JavaScript, как
function returnFunction()
{
return "test";
}
и в моем SWF у меня есть следующий код:
import flash.external.ExternalInterface;
var result:Object = ExternalInterface.call("returnFunction");
versionTxt.text = "Returned: " + String(result);
Таким образом, это работает нормально, когда я работаю на своей локальной машине (пришлось изменить некоторые параметры безопасности на флеш-плеере) и когда я размещаю его на сервере. Но мне нужно запустить его на мобильном телефоне, поэтому я завернул его в приложение WRT, но когда я тестирую его, он возвращается примерно так:
Возвращено: ноль
Так что у меня нет вариантов здесь, это проблема безопасности? Я думаю, я уже видел что-то подобное в WRT, так что я уверен, что это возможно, просто не знаю, чего мне здесь не хватает:/
1 ответ
Может быть, вы могли бы настроить его так, чтобы javascript или WRT перезванивали со значением в функцию, которую вы выставили через ExternalInterface.
Вспышка:
import flash.external.*;
//Add a function call that can be accessed from javascript
ExternalInterface.addCallback("operationComplete", operationComplete);
//invoke the javascript operation
function startExternalOperation(){
ExternalInterface.call("operation");
}
//javascript invokes this function when it is done
function operationComplete(result:Object){
//do something with results
}
JavaScript:
function operation() {
var result;
//do something and populate result
document.getElementById("swfObject").operationComplete(result);
}