实现将JS调用Flash的方法,通常使用的是Flash提供的ExternalInterface类,以下是实现方法:
1. 在Flash中定义需要调用的方法
首先在Flash ActionScript代码中定义需要被调用的方法,可以在你的Flash项目中新建一个Symbol(如code),在新建的Symbol中将需要的函数注册到ExternalInterface类中:
// 定义hello函数
public function hello():void {
// do something ...
}
// 在构造函数中注册该函数到ExternalInterface
public function Code() {
ExternalInterface.addCallback("hello", hello);
}
2. 在HTML页面中嵌入Flash对象,并提供JavaScript接口
在HTML页面中嵌入Flash对象时,需要注意以下几点:
- 构造object或embed标签时,需要指定allowScriptAccess属性值为"always"。
- 准确指定flash的宽度和高度。
- 给object或embed标签加上id和name属性,以方便在之后的JavaScript调用中使用。
代码示例如下:
<!-- HTML代码 -->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="flashContent"
name="flashContent"
width="100%"
height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="your-path/your-flash-file.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="always" />
<embed src="your-path/your-flash-file.swf"
width="100%"
height="100%"
quality="high"
allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer"
name="flashContent"
id="flashContent">
</embed>
</object>
<!-- JavaScript代码 -->
<script type="text/javascript">
var flashObject = document.getElementById("flashContent");
function callFlashFunction(functionName, args) {
if (flashObject && typeof functionName === "string") {
if (args && !(args instanceof Array)) {
args = [args]; // 若args不是数组,则转换为数组
}
return flashObject[functionName].apply(flashObject, args);
}
}
</script>
3. 在JavaScript中调用Flash中的方法
在JavaScript中,用callFlashFunction方法调用Flash对象中的方法。例如在上面定义的hello方法中,我们可以这样调用:
callFlashFunction("hello");
这样就可以在JavaScript中调用到Flash中定义的hello方法。另外,还可以传递参数到Flash中,代码如下:
// 在Flash ActionScript中定义带参数的函数
public function sayHello(name:String):void {
trace("Hello, " + name + " !");
}
// 在JavaScript中调用带参数的函数
callFlashFunction("sayHello", "John");
这样,就可以在JavaScript中通过调用Flash对象中的方法来执行一些Flash中的功能了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:比较简单的一个符合web标准的JS调用flash方法 - Python技术站