http://blog.minidx.com/2008/03/10/562.html
下面的例子展示了如何在Flex中利用ExternalInterface类和static的ExternalInterface.call()函数调用JavaScript函数。
下面是具体的例子以及源代码:
Download: main.mxml
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/03/09/calling-javascript-functions-from-your-flex-applications-using-the-externalinterface-api/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
private function callJavaScript():void {
ExternalInterface.call("sayHelloWorld");
}
]]>
</mx:Script>
<mx:Button label="Say 'Hello World'"
click="callJavaScript();" />
</mx:Application>
然后在HTML文件中,在<head>和</head>间添加下面的代码:
<script language="JavaScript" type="text/javascript">
function sayHelloWorld() {
alert("Hello World, from JavaScript");
}
</script>
下面是执行实例(可以右键察看源代码):
如果你用的是Flex Builder,那可以编辑/html-template/目录下的“index.template.html” 文件。该文件是用来创建/bin-debug/和/bin-release/目录下的主HTML文件。如果你清空过你的整个工程,那可能会有区别。还有很重要的是修改index.template.html文件会让你覆盖原文件–如果修改了Flex SDK版本或者改变了工程的HTML封装(就像改变了“Use Express Install” 或者“Enable integration with browser navigation”.)。
如果你不是直接将JavaScript加在文件中,而是用一个JS文件代替的话,那你可以在HTML文件中INCLUDE下面的文件:
文件:/src/scripts.js
function sayHelloWorld() {
alert("Hello World, from JavaScript");
}
/html-template/index.template.html中添加:
<script src="scripts.js" language="JavaScript"></script>
<script src="scripts.js" language="JavaScript"></script>
上面的很不错,但是如果想在JavaScript函数中传递参数呢?考虑一下下面的JavaScript函数:
// JavaScript
function sayString(str) {
alert(str);
}
上面的JavaScript函数有一个参数str,在JavaScript的alert()函数中显示。如果你想从ActionScript传一个参数给自己的函数sayString(),简单的像下面这样传一个额外的参数给静态ExternalInterface.call() 函数:
// ActionScript 3.0
private function callJavaScript():void {
ExternalInterface.call("sayString", "Hello World, from ActionScript");
}
你的下一个问题可能会是:“这看起来很不错,但是是否真的需要创建一个JavaScript的函数,而它仅仅封装了一个alert事件”?的确,对于这样简单的,我们可以直接删掉前面的sayString(),我们可以简单的写为这样:
// ActionScript 3.0
private function callJavaScript():void {
ExternalInterface.call("alert", "Hello World, from ActionScript");
}
分享到:
相关推荐
flex与js交互 关于ExternalInterface使用的小例子
flex和javascript交互.在Flex中可以用ExternalInterface来调用Flex的方法
flex与javascript交互利用externalinterface.callback函数进行。
as3.0利用ExternalInterface与js交互的播放器,重写flvPlayerbeta0.1例子
让你能够调用加载Flash 应用的浏览器,获取页面信息,并且调用JavaScript 方法,同时也 让JavaScript 方法可以调用Flash 应用程序。虽然已经存在一些其他集成浏览器和Flash Player 的工具——Adobe Flex Ajax Bridge...
ExternalInterface
本例通过flash 8的ExternalInterface实现了javascript与flash之间的相互调用
通过ExternalInterface.call()方法,在Flash中调用JS函数。 通过调用带参的JS函数实现Flash向JS传值,通过调用带返回值的JS函数实现JS向Flash传值。 2、JS调用Flash传递数据: 通过ExternalInterface.addCallback()...
今天花了一些时间整理出来了Swf 文件与JavaScript通信的示例,...在HTML页中使用JavaScript,可以调用FlashPlayer中的ActionScript函数。ActionScript函数可以返回一个值,JavaScript会立即接收它作为该调用的返回值。
首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和...
jsp和flash函数互相调用的方法ExternalInterface.call和ExternalInterface.addCallback
ExternalInterface在我看来就是flash为了外部程序的调用所声明的接口。看到论坛里有好多人问但是回答的就不是很多,就把自己做的一个简单的例子放上来.写的不好,希望能抛砖引玉,大侠勿拍!!这个是里面用到的flash...
不用getURL和fsCommand方法 flash使用的actionscript跟javascript是非常相通的,下面描述如何互相调用函数: 1:javascript调用flash中的函数 在flash的脚本中增加 import flash.external.ExternalInterface;...
vb动态加载ShockwaveFlash控件,解决了静态加载无法保存问题 flash利用ExternalInterface类创建外部函数以及通过fscommand发送参数 vb使用带事件定义变量。 完成 flash与vb的双向通信。
我们知道,Flash中,如果访问外部JS函数,只需 代码如下:flash.external.ExternalInterface.call(“JS中的函数名”);这一句即可 如果要JS访问Flash中的函数,需要用addCallBack注册一个回调函数,让JS去调用(AS2...
4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的函数。 包含swfobject.js与fla源文件。 (*下载swfObject开发版及示例请访问:http://code.google.com/p/swfobject/) 兼容性,...
在 Flash 上捕获视频,以便您可以使用 ExternalInterface 从 JavaScript 中使用它。演示尝试!如何使用它? 当用户在 Flash 上“ cameraUnmuted静音”网络摄像头时,库会调用cameraUnmuted JavaScript 函数: var ...
外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用...
OpenSPARCT1 External Interface
8.2.3在FlexBuilder3中进行调试 155 8.3处理ActionScript3.0中的异常 160 8.3.1使用try…catch…finally语句 160 8.3.2throw语句主动抛出异常 162 8.3.3处理异常事件 163 8.4异常类型 163 8.4.1异常对象 164 8.4.2...