Проблема с 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);
}

Справочник Nokia

Другие вопросы по тегам