0

我正在做一个内部使用 Flash 的 WRT 应用程序。问题是我必须通过 javascript 将参数传递给 swf。所以我在javascript中创建了一个函数,比如

function returnFunction() { return "test"; }

在我的 SWF 中,我有以下代码:

import flash.external.ExternalInterface;

var result:Object = ExternalInterface.call("returnFunction");
versionTxt.text = "Returned: " + String(result);

因此,当我在本地计算机上运行(必须更改 Flash 播放器上的一些安全性)以及将其托管在服务器上时,这可以正常工作。但是我必须在手机上运行它,所以我将它包装在一个 WRT 应用程序中,但是当我测试它时,它返回如下:

返回:空

所以我在这里没有选择,这是一个安全问题吗?我想我已经在 WRT 中看到过类似的东西,所以我很确定这是可能的,只是不知道我在这里缺少什么:/

4

1 回答 1

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);
}

诺基亚参考

于 2011-02-10T19:16:08.683 回答