http://wmd212.blog.sohu.com/64859873.html
ExternalInterface API 可以与javaScript 实现无缝连接
Call调用方法
call方法是一个静态方法,可以直接用对象类来调用javascript中的方法
ExternalInterface.call(functionName:String,Parameters);
参数描述
AddCallback方法
AddCallback方法是一个静态方法,允许javascript调用flash时间上的函数
ExternalInterface.addCallback(functionID:String,instance:Object, functionName:Function);
参数描述
functionID:从javascript调用ActionScript函数时可使用的名称。此名称不必与ActionScript方法的实际名字匹配。
instance
functionName: 要从javascript调用的AcrionScript方法。
===========================================================
AS调用js
demo1.fla
import flash.external.*;
get_btn.onRelease = function()
{
}
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>
</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>