`

Flex中利用ExternalInterface的API调用JavaScript函数的例子

阅读更多
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与js交互 关于ExternalInterface使用的小例子

    flex和javascript交互

    flex和javascript交互.在Flex中可以用ExternalInterface来调用Flex的方法

    flex与js交互2

    flex与javascript交互利用externalinterface.callback函数进行。

    as3.0利用ExternalInterface与js交互的播放器

    as3.0利用ExternalInterface与js交互的播放器,重写flvPlayerbeta0.1例子

    flex解析浏览器地址

    让你能够调用加载Flash 应用的浏览器,获取页面信息,并且调用JavaScript 方法,同时也 让JavaScript 方法可以调用Flash 应用程序。虽然已经存在一些其他集成浏览器和Flash Player 的工具——Adobe Flex Ajax Bridge...

    ExternalInterface

    ExternalInterface

    javascript与flash相互调用

    本例通过flash 8的ExternalInterface实现了javascript与flash之间的相互调用

    Flash(AS3)与JS相互调用

    通过ExternalInterface.call()方法,在Flash中调用JS函数。 通过调用带参的JS函数实现Flash向JS传值,通过调用带返回值的JS函数实现JS向Flash传值。 2、JS调用Flash传递数据: 通过ExternalInterface.addCallback()...

    SWF(ActionScript3.0)与JavaScipt(JS)通信示例

    今天花了一些时间整理出来了Swf 文件与JavaScript通信的示例,...在HTML页中使用JavaScript,可以调用FlashPlayer中的ActionScript函数。ActionScript函数可以返回一个值,JavaScript会立即接收它作为该调用的返回值。

    Flex企业应用开发实战源代码

    首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和...

    jsp和flash函数互相调用.txt

    jsp和flash函数互相调用的方法ExternalInterface.call和ExternalInterface.addCallback

    delphi通过ExternalInterface与flash交互

    ExternalInterface在我看来就是flash为了外部程序的调用所声明的接口。看到论坛里有好多人问但是回答的就不是很多,就把自己做的一个简单的例子放上来.写的不好,希望能抛砖引玉,大侠勿拍!!这个是里面用到的flash...

    flash javascript之间的通讯方法小结

    不用getURL和fsCommand方法 flash使用的actionscript跟javascript是非常相通的,下面描述如何互相调用函数: 1:javascript调用flash中的函数 在flash的脚本中增加 import flash.external.ExternalInterface;...

    vb6.0与as3.0互交 双向

    vb动态加载ShockwaveFlash控件,解决了静态加载无法保存问题 flash利用ExternalInterface类创建外部函数以及通过fscommand发送参数 vb使用带事件定义变量。 完成 flash与vb的双向通信。

    JS访问SWF的函数用法实例

    我们知道,Flash中,如果访问外部JS函数,只需 代码如下:flash.external.ExternalInterface.call(“JS中的函数名”);这一句即可 如果要JS访问Flash中的函数,需要用addCallBack注册一个回调函数,让JS去调用(AS2...

    AS3与JS交互通信(使用swfObject插入Flash)

    4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的函数。 包含swfobject.js与fla源文件。 (*下载swfObject开发版及示例请访问:http://code.google.com/p/swfobject/) 兼容性,...

    flashcam:网络摄像头视频捕获,从 ActionScript 到 JavaScript

    在 Flash 上捕获视频,以便您可以使用 ExternalInterface 从 JavaScript 中使用它。演示尝试!如何使用它? 当用户在 Flash 上“ cameraUnmuted静音”网络摄像头时,库会调用cameraUnmuted JavaScript 函数: var ...

    ActionScript开发人员指南中文版

    外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用...

    OpenSPARCT1_ExternalInterface.pdf

    OpenSPARCT1 External Interface

    ActionScript开发技术大全

    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...

Global site tag (gtag.js) - Google Analytics