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>
相关推荐
JavaScript(JS)与ActionScript(AS)是两种不同的脚本语言,它们在Web开发和富互联网应用程序(RIA)中都发挥着重要作用。JS主要用于浏览器端的交互和动态效果,而AS主要与Adobe Flash平台相关,用于创建动画和...
在现代Web开发中,Flash和JavaScript(JS)的交互是一个重要的技术点,特别是在富互联网应用程序(RIA)的场景下。这种交互能力使得开发者能够利用Flash的动画和多媒体处理能力,结合JavaScript的灵活性和浏览器兼容...
个人觉得目前以Hybrid App居多,单纯的数据展示我们直接采用WebView来渲染就可以了,但是有时候可能会用到两者之间传递参数的情况,今天就来总结一下两者之间如何互相调用。本篇主要介绍WebView与Javascript交互数据...
= ResolveUrl(“../PayCenter/AlipayAdd.aspx”)%>’>地址</a> 2、C#调用客户端方法:(top.window.document:表父窗体,如果是MainFrame对象在本窗体中,则不加top.window.document) Js中的方法: 代码如下: ...
两者都基于Adobe Flash Player运行,因此在某些场景下,它们可以互相调用功能或共享数据。 1. **Flex调用Flash**: 当Flex应用程序需要利用Flash的高级图形或动画能力时,可以使用SWFObject库将Flash内容嵌入到...
首先,当两个脚本(例如a.cs和b.cs)位于同一路径下,并且需要互相调用非静态成员时,C#语言中通常需要创建实例来访问非静态变量或方法。例如,在b.cs中要调用a.cs中的非静态变量cc,可以这样写: ```csharp a c = ...
在互联网技术的发展历程中,Flash和JavaScript曾是两种非常重要的前端技术,它们各自拥有独特的优势,但有时也需要互相协作以实现更丰富的交互效果。本篇文章将深入探讨“Flash与JavaScript通信”的相关知识点,以及...
不用getURL和fsCommand方法 flash使用的actionscript跟javascript是非常相通的,下面描述如何互相调用函数: 1:javascript调用flash中的函数 在flash的脚本中增加 import flash.external.ExternalInterface;...
- **JavaScript**:作为主要编程语言,JavaScript通常用于前端开发,但在这个项目中,它可能被用来构建Node.js服务器,以便在后端处理Twitter API的调用和Matrix的API交互。 - **Node.js**:由于JavaScript是运行在...
由于浏览器按照[removed]在网页中出现的顺序,读取Javascript文件,然后立即运行,导致在多个文件互相依赖的情况下,依赖性最小的文件必须放在最前面,依赖性最大的文件必须放在最后面,否则代码会报错。 (2)性能...
概念:函数通过直接调用自身,或者两个函数之间的互相调用,来达到一定的目的,比如排序,阶乘等 简单的递归 阶乘 function factorial(n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); ...
工作需要,用javascript做一个统计图表: 完成后,做个笔记,大家分享一下,互相学习。其中还有点问题,还不是很完善。 其中参考了百度空间,中管理中心,访问统计,的js统计图表。但是应用上还是有差别,因为我做的...
这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。 框架间的互相引用:一个页面中的所有...
JavaScript 作用域是编程中一个至关重要的概念,它决定了变量和函数的可见性和生命周期。在JavaScript中,与其他一些面向对象的编程语言不同,如Java,它并没有严格意义上的私有、受保护或公有作用域。JavaScript ...
- **Ext.js**: 一套用于构建Web应用程序的JavaScript库,支持多种前端UI组件。 - **jQuery**: 一款轻量级的JavaScript库,广泛用于简化HTML文档遍历、事件处理、动画以及Ajax交互。 **报表工具** - **...
总结起来,这篇文章通过jQuery的源码片段,讲解了JavaScript中for循环、自调用匿名函数、对象扩展以及对象转URL参数的方法,这些都是理解和使用JavaScript库(如jQuery)时至关重要的知识点。通过这种方式学习,可以...
1. 跨窗口通信受到同源策略的限制,只有同源的窗口才能互相访问对方的属性和方法。如果跨域,你需要确保CORS策略允许这种通信。 2. `window.opener`可能为`null`,这通常发生在用户直接打开窗口或使用书签,此时尝试...
- 在打包前进行充分的单元测试和集成测试,利用JUnit或其他测试框架模拟服务调用,提前发现和修复问题。 - 使用Mock框架(如Mockito)模拟外部依赖,以便在不部署WAR包的情况下测试服务。 6. **持续集成/持续部署...
在Delphi编程环境中,数据集(Dataset)是用于存储和管理结构化数据的核心组件,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于网络数据传输。将Delphi的数据集与JSON进行互转是开发...
总的来说,JavaScript的继承机制是灵活多样的,开发者可以通过原型链、构造函数调用、组合使用各种技巧来实现类的继承,同时也需要注意避免因引用类型导致的问题,确保实例之间的数据独立性。在实际开发中,理解并...