js&as之间方法的调用

http://wmd212.blog.sohu.com/64859873.html

 

ExternalInterface API 可以与javaScript 实现无缝连接

Call调用方法
call方法是一个静态方法,可以直接用对象类来调用javascript中的方法
 
ExternalInterface.call(functionName:String,Parameters);
参数描述
 functionName:我们想要调用的javascript函数名,要以字符串的形式出现
 Parameters : 要传递给javascript函数的参数,用逗号分开,是可选的。

AddCallback方法
AddCallback方法是一个静态方法,允许javascript调用flash时间上的函数

ExternalInterface.addCallback(functionID:String,instance:Object, functionName:Function);
参数描述
functionID:从javascript调用ActionScript函数时可使用的名称。此名称不必与ActionScript方法的实际名字匹配。
instance this在该方法中被解析成的对象。此对象不一定是在其上可找到该方法的对象,你可以指定任何对象(或null)
functionName: 要从javascript调用的AcrionScript方法。
===========================================================

AS调用js
demo1.fla
import flash.external.*;
get_btn.onRelease = function()
{
 var temp_str =String(ExternalInterface.call("say","Hello World"));
 result_txt.text = temp_str;
}
demo1.html
<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="zh-CN" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>demo1</title>
<script>
 function say(txt)
 {
  return txt;
 }

</script>
</head>
<body bgcolor="#ffffff">
<!-- 影片中使用的 URL-->
<!-- 影片中使用的文本-->
<!-- saved from url=(0013)about:internet-->
<objectclassid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0

" width="550" height="400" id="demo1"align="middle">
<param name="allowScriptAccess" value="sameDomain"/>
<param name="movie" value="demo1.swf"/><param name="quality" value="high"/><param

name="bgcolor" value="#ffffff"/><embed src="demo1.swf"quality="high" bgcolor="#ffffff"

width="550" height="400" name="demo1" align="middle"allowScriptAccess="never" allowNetworking="internal" autostart="0"

type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer"

/>
</object>
</body>
</html>

--------------------------------

js调用as
demo2.fla
//导入包
import flash.external.*;
//提供JS访问的函数名
var _method:String = "say";
//指定本地函数中this变量的作用域,可设置为null留空
var e_area:Object = null;
//AS内部函数名
var method:Function = say;
//将函数注册到容器列表
var wasSuccessful:Boolean = ExternalInterface.addCallback(_method,e_area, method);
//查看注册是否成功
if(wasSuccessful){
result_txt.text = "函数注册成功";
}
//本地的函数
function say(txt:String) {
result_txt.text = txt;
}

demo2.html
<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="zh-CN" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>demo2</title>
</head>
<body bgcolor="#ffffff">
<!-- 影片中使用的 URL-->
<!-- 影片中使用的文本-->
<!-- saved from url=(0013)about:internet-->
<objectclassid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0

" width="550" height="400" id="demo2"align="middle">
<param name="allowScriptAccess" value="sameDomain"/>
<param name="movie" value="demo2.swf"/><param name="quality" value="high"/><param

name="bgcolor" value="#ffffff"/><embed src="demo2.swf"quality="high" bgcolor="#ffffff"

width="550" height="400" name="demo2" align="middle"allowScriptAccess="never" allowNetworking="internal" autostart="0"

type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer"

/>
</object>

<div>
<form>
<input type="button"οnclick="callExternalInterface()" value="JS调用AS方法"/>
</form>
<!--最佳位置<head>之间-->
<script>
function callExternalInterface() {
thisMovie("demo2").say("Hello,World");
}
//浏览器兼容访问DOM
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
</script>
</div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值