2011-02-10 3 views
0

Я делаю приложение WRT, в котором используется flash. Дело в том, что я должен передавать параметры в swf через javascript. Таким образом, я создал функцию в JavaScript, какПроблема с ExternalInterface в Flash/JavaScript и WRT

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 Reference

+0

Проблема в том, что если сделать это, как вы говорите (что добавляет еще один "слой" общения) он работает отлично на рабочем столе. Но в мобильном устройстве это не так, поэтому я полагаю, что это проблема безопасности или чего-то, чего я не вижу при настройке .Fla –