ActionScript与javascript相互调用
2013-11-07 10:18
288 查看
一、ActionScript与javascript相互调用(adobe flash cs4)
1、概述
如果想使得js与as能够进行通讯,我们需要用到flash中的一个类:flash.external.ExternalInterface ,
通过他您可以在 Flash 运行时中使用 HTML 页面中的 JavaScript 调用 ActionScript 函数。
ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。
此功能替代
ExternalInterface中一些API的简介:
公有属性:
公有方法:
1、Javascript调用 Actionscript中的函数
需要使用到方法:
addCallback();
将 ActionScript 方法注册为可从容器调用。成功调用
JavaScript 或 ActiveX 代码调用。
具体案例:
2、actionscript调用javascript函数
需要用到的函数是:call();
调用由 SWF 容器公开的函数,传递零个参数或传递多个参数。如果该函数不可用,调用将返回
具体案例:
当然html中同样需要加入swf,如同上面案例一般。
1、概述
如果想使得js与as能够进行通讯,我们需要用到flash中的一个类:flash.external.ExternalInterface ,
通过他您可以在 Flash 运行时中使用 HTML 页面中的 JavaScript 调用 ActionScript 函数。
ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。
此功能替代
fscommand()方法。
ExternalInterface中一些API的简介:
公有属性:
属性 | 由以下参数定义 | ||
---|---|---|---|
available : Boolean [静态] [只读] 表示此播放器是否位于提供外部接口的容器中。 | ExternalInterface | ||
marshallExceptions : Boolean = false [静态] 表示外部接口是否应尝试将 ActionScript 异常传递到当前浏览器并将 JavaScript 异常传递到播放器。 | ExternalInterface | ||
objectID : String [静态] [只读] 在 Internet Explorer 中返回 object 标签的 id 属性,或者在 Netscape 中返回 embed 标签的 name 属性。 | ExternalInterface |
方法 | 由以下参数定义 | ||
---|---|---|---|
addCallback(functionName:String, closure:Function):void [静态] 将 ActionScript 方法注册为可从容器调用。 | ExternalInterface | ||
call(functionName:String, ... arguments):* [静态] 调用由 SWF 容器公开的函数,传递零个参数或传递多个参数。 | ExternalInterface |
需要使用到方法:
addCallback();
将 ActionScript 方法注册为可从容器调用。成功调用
addCallBack()后,播放器中注册的函数可由容器中的
JavaScript 或 ActiveX 代码调用。
具体案例:
as代码: package{ //引入包 import flash.external.*; import flash.display.*; public class Test extends Sprite{ //定义供外部js调用的函数 public function text():void{ trace("====text====="); } public function text2(msg:String):void{ trace("====text2==: "+ msg); } public function Test():void{ //将定义的函数进行注册,使得这些函数能够供外部调用 ExternalInterface.addCallback("text",text); ExternalInterface.addCallback("text2",text2); } } }
html代码: <!--引入swf--> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="flashObject" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="400" height="440"> <param name="movie" value="flash/ShiBieFunction.swf" /> <param name="quality" value="high" /> <param name="wmode" value="transparent" /> <embed src="flash/ShiBieFunction.swf" type="application/x-shockwave-flash" width="400" height="440"></embed> </object>
js代码: function thisMovie(movieName){ var isIE = navigator.appName.indexOf("Microsoft") != -1; return (isIE) ? window[movieName] : document[movieName]; } //flashObject为页面中加入swf标签的id,text为在as中与调用函数对应所取的函数名称 thisMovie("flashObject").text(); thisMovie("flashObject").text2("message");
2、actionscript调用javascript函数
需要用到的函数是:call();
调用由 SWF 容器公开的函数,传递零个参数或传递多个参数。如果该函数不可用,调用将返回
null;否则,它返回由该函数提供的值。
具体案例:
js代码: //定义供as调用的函数 function show(){ alert("===show==="); } function onShow(msg){ alert("==onShow==: "+msg); }
as 代码: //调用不带参数的函数 ExternalInternal.call("show"); //调用带参数的函数 ExternalInternal.call("onShow","param");
当然html中同样需要加入swf,如同上面案例一般。
相关文章推荐
- JavaScript与ActionScript函数相互调用(数据的交互)
- JavaScript与ActionScript函数相互调用
- 积少成多Flash(8) - ActionScript 3.0 网页之获取参数,JavaScript与ActionScript之间的相互调用
- Flex:JavaScript与ActionScript函数相互调用
- 积少成多Flash(8) - ActionScript 3.0 网页之获取参数,JavaScript与ActionScript之间的相互调用
- 积少成多Flash(8) - ActionScript 3.0 网页之获取参数,JavaScript与ActionScript之间的相互调用
- javascript与java的相互调用,纯java的javascript引擎rhino(转载)
- Android:Web App,Hybrid App,Native App之web:Android和javaScript相互调用
- iOS webView的高级用法之JS交互,js与oc的相互调用(JavaScriptCore)
- Android与JavaScript的相互调用
- UIWebView与JavaScript相互调用
- net中前台javascript与后台c#函数相互调用
- ASP编程中20个非常有用的例子;Vbscript和Javascript相互调用详解
- android与javascript相互调用
- iOS js oc相互调用(JavaScriptCore)
- Android与JavaScript方法相互调用!
- iOS中Objective-C与JavaScript之间相互调用的实现(实现了与Android相同的机制)
- 17.Android与JavaScript相互调用
- C# winform与Javascript的相互调用
- Hybrid App开发模式中, IOS/Android 和 JavaScript相互调用方式