`
touchinsert
  • 浏览: 1335805 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[转]flash 与 js 通讯方法

 
阅读更多

flash 中调用js 有两种方法,第一中是同getURL 这个方式来调用js,第二种是用 ExternalInterface.call( ).第一种是很常见的用法,我就说一下小明我是怎么用 ExternalInterface.call

什么是 ExternalInterface?

ExternalInterface类是外部api ,也就是actionscript 和 flashplayer 的容器之间实现直接通讯的应用程序编程接口。在flash的帮助文档里是推荐用ExternalInterface来实现javascript 和 actionscript 之间通讯的。利用ExternalInterface可以调用html网页上任何的js 功能,传递参数并接受来自该调用的返回值。从html 上的js中调用flashplayer中的as 函数。

1 flash 调用 js:

flash部分---------------------------

//应用命名空间;

import flash.external.*;
var greeting:String;//调用createButton 生成一个按钮
var btn:MovieClip = createButton(100, 30, 0xCCCCCC);btn.onPress = function() {

//调用js里的sayHello 函数并接受其返回值
greeting = String(ExternalInterface.call("sayHello", "browser"));
this.mcTxt.text = greeting; // >> Hi Flash.

function createButton(width:Number, height:Number, color:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
var mcFmt:TextFormat;
mc.beginFill(color);
mc.lineTo(0, height);
mc.lineTo(width, height);
mc.lineTo(width, 0);
mc.lineTo(0, 0);
mcFmt = new TextFormat();
mcFmt.align = "center";
mcFmt.bold = true;
mc.createTextField("mcTxt", depth, 0, 0, width, height);
mc.mcTxt.text = "Call JS Function";
mc.mcTxt.setTextFormat(mcFmt);
return mc;


---------------flash结束js部分-------------------

<script>
function sayHello(name) {
alert(">> Hello " + name + ".");
return ">> Hi Flash.";

</script>

---js结束2。js调用 flashflash 部分---

import flash.external.*;
//这个参数是说js里调用as里的函数名
var methodName:String = "goHome";//这个是在该方法中被解析的对象,就是函数里的this 指向谁
var instance:Object = null;//这个是as里的函数名,这个参数就是gohome这个在js里调用的函数名 在as里对应的函数名var method:Function = goTokb;var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method);
var txtField:TextField = this.createTextField("txtField", this.getNextHighestDepth(), 0, 0, 200, 50);
txtField.border = true;
txtField.text = wasSuccessful.toString();
function goTokb() {
txtField.text = "http://10kb.net";
getURL("http://www.10kb.net", "_self");

------------------------flash 结束js部分-----------------

<form>
<input type="button" onclick="callExternalInterface()" value="Call ExternalInterface" />
</form>
<script>
function callExternalInterface() {
thisMovie("externalInterfaceExample").goHome();

function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]

else {
return document[movieName]


</script>

分享到:
评论

相关推荐

    flash与javascript通讯.txt

    在IT领域,特别是Web开发中,Flash与JavaScript的通信是一个重要的技术点,尤其是在早期Web多媒体内容创作中。根据提供的文件信息,我们可以深入探讨Flash与JavaScript如何进行有效的通信,以及这一过程中涉及的关键...

    FLASH与JAVASCRIPT之间的通讯.pdf

    "FLASH与JAVASCRIPT之间的通讯" FLASH与JAVASCRIPT之间的通讯是指在网页上将FLASH电影与JAVASCRIPT脚本进行交互的技术。这种技术可以使得FLASH电影与JAVASCRIPT脚本进行信息交换,从而实现 FLASH电影的交互性。 ...

    flash to js 使用工具包及示例,提供 js 和 flash 之间的通讯

    本文将深入探讨“Flash to JS”的使用,以及如何通过提供的工具包实现JavaScript与Flash之间的通信。 标题提及的“Flash to JS”指的是使用技术手段使得Flash内容能够与网页中的JavaScript代码进行通信,以增强用户...

    c#与flash通讯

    首先,我们要理解`ExternalInterface`是Flash Player提供的一种机制,允许AS3(ActionScript 3)代码调用JavaScript函数,从而与宿主环境(如浏览器)进行通信。在桌面应用中,如使用C#的Windows Forms或WPF,可以...

    flash与js通讯方法

    在网页开发中,有时我们需要实现Flash与JavaScript之间的通信,以便更好地协调两者之间的功能。本文将详细介绍两种主要的Flash与JavaScript的交互方式:`getURL` 和 `SetVariable`。 首先,我们来看`getURL`方法。`...

    Flash 与 html及C#程序通讯

    - `ExternalInterface.call`方法允许Flash调用JavaScript函数,传递数据。 2. **Flash与C#通过Web服务通信**: - C#创建SOAP或RESTful Web服务,提供XML或JSON格式的数据接口。 - Flash使用`XMLSocket`或`...

    调试flash与html通讯的例子

    总结来说,"调试flash与html通讯的例子"涉及到Flash的ActionScript和HTML的JavaScript之间的数据交换,这在创建互动式Web内容时非常关键。通过学习和实践此类示例,开发者可以更好地掌握这两种技术的协同工作,提升...

    电信设备-Flash与JS页面的高效渲染通讯方法、存储介质、设备及系统.zip

    在现代电信设备中,高效的页面渲染和通信方法是至关重要的,特别是当涉及到Flash与JavaScript(JS)交互时。这两种技术虽然各有特色,但在特定场景下结合使用,可以为用户提供更丰富的交互体验。本文将深入探讨Flash...

    js调用AS flash函数

    首先,理解JS与AS通讯的基础是`ExternalInterface`,这是Flash Player提供的一个API,允许ActionScript代码与JavaScript环境进行交互。在AS端,你需要先启用`ExternalInterface.addCallback`方法来注册一个可供JS...

    flash与C#通讯屏蔽右键菜单

    - **Flash External Interface (ExternalInterface)**:这是Flash与JavaScript交互的方式,由于C#可以通过WebBrowser控件嵌入网页,所以Flash可以通过调用JavaScript函数,间接与C#进行通信。 - **本地套接字...

    asp与flash通讯

    在ASP与Flash通讯的过程中,主要涉及到以下关键技术点: 1. **FlashVars**: 这是Flash与服务器端脚本之间传递参数的一种简单方式。在HTML中嵌入Flash对象时,可以设置`FlashVars`属性,将参数以URL编码的形式传递给...

    利用Flash实现网页长连接并利用Javascript进行通讯

    **JavaScript与Flash的通讯** 虽然Flash能建立长连接,但前端的JavaScript并不能直接操作Flash的Socket对象。为了使JavaScript能够与Flash进行通信,我们需要使用一种叫做“External Interface”的机制。Flash ...

    js+socket实现web通讯

    "js+socket实现web通讯"是指通过JavaScript结合WebSocket协议或者Flash的Socket API来实现Web端的实时通信。WebSocket提供了一种高效、双向通信的机制,而当面临跨域限制时,可以借助Flash的Socket功能作为桥梁。...

    flash和JavaScript通信

    Flash对象可以通过ActionScript 3(AS3)与JavaScript交互。在AS3中,我们可以使用`ExternalInterface`类来调用JavaScript函数。例如,当Flash中的某个事件触发时,我们可以使用`ExternalInterface.call()`方法将...

    flash javascript之间的通讯方法小结

    标题《flash javascript之间的通讯方法小结》表明本文主要讨论的是Flash和JavaScript这两种技术之间进行交互与通讯的方法。Flash是一种用于创建动画、游戏和应用的多媒体软件平台,而JavaScript是一种广泛用于网页...

    flash与后台数据库交互

    标题中的“Flash与后台数据库交互”是指在网页应用中,使用Adobe Flash技术通过ActionScript与后端数据库进行数据通信的技术。这种技术常用于创建动态、交互式的用户界面,尤其是在需要实时更新数据或用户需要与...

    Flash与C#通信

    ActionScript 3提供了ExternalInterface API,使得Flash可以与JavaScript或其他宿主环境(如C#)进行双向通信。 2. **ExternalInterface API** ExternalInterface API是Flash Player提供的接口,允许ActionScript...

Global site tag (gtag.js) - Google Analytics