20.3.在Flex里面调用JavaScript函数方法

20.3.1 问题
我需要在Flex 里调用JavaScript 函数。
20.3.2 解决办法
在AS 中使用ExternalInterface 类调用JavaScript 函数。
20.3.3 讨论
ExternalInterface 类封装了所有你在运行时可能使用到的与JavaScript 通信的功能。你只需要简单的使用ExternalInterface.call 方法来执行包含Flex 应用程序的HTML 页面里的JavaScript函数方法。
要在ActionScript 里面调用简单JavaScript 方法函数,使用下面的代码:
+展开
-ActionScript
ExternalInterface.call( "simpleJSFunction" );

下面则是被调用的基础JavaScript 函数。该JavaScript 方法的名字作以字符串值形式传入到调用它的方法内,并且JavaScript 的Alert 窗口会出现在Flex 应用程序上:
+展开
-JavaScript
function simpleJSFunction()
{
alert("myJavaScriptFunction invoked");
}

你也同样可以通过该技术使用函数参数来从ActionScript 代码传递数据给JavaScript。仿照下面代码,可以在调用JavaScript 函数的同时传入参数:
+展开
-ActionScript
ExternalInterface.call( "simpleJSFunctionWithParameters""myParameter" );

使用该方法,可以从ActionScript 代码传递多个参数,复杂值对象,或者简单参数给JavaScript代码。

在JavaScript 里,也可以随意使用该方法,所有调用该方法的其他方法也需要传递这个参数。

当被调用的时候,这个方法会在你的Flex 应用之上弹出显示参数值为myParameter 的JavaScript 警报框。
+展开
-JavaScript
function simpleJSFunctionWithParameters( parameter )
{
alert( parameter);
}

通常,你可能发现需要在Flex 应用程序里调用JavaScript 方法来返回一个JavaScript 代码程序里面的值。要返回这样的值,使用这个方法:
+展开
-ActionScript
var result:String = ExternalInterface.call( "simpleJSFunctionWithReturn" );

你可以看到对应的JavaScript 方法返回一个字符串值,这个值将存储在ActionScript 类里面的结果字符串实例中。
+展开
-JavaScript
function simpleJSFunctionWithReturn()
{
return "this is a sample return value: " + Math.random();
}

加支付宝好友偷能量挖...


评论(0)网络
阅读(68)喜欢(0)flash/flex/fcs/AIR