flash可以调用js定义的方法,同样,js调用flash中定义的方法也是可以实现的!这就是本文要详细讲解的:js、flash各自定义的方法互相调用的实现方法!!
flash 中调用javascript函数方法,一般使用在flash按钮中加入下面的as脚本:
getURL(“javascript:js方法;”);
但要想使用javascript中调用flash as中定义的方法 ,在Flash8出来之后就变的比较容易了:ExternalInterface API 可以与javaScript 实现无缝连接!
AS调用js定义的方法
Call调用方法:call方法是一个静态方法,可以直接用对象类来调用javascript中定义的函数方法
语法:ExternalInterface.call(functionName:String,Parameters);
参数解析:
functionName :我们想要调用的javascript函数名,要以字符串的形式出现
Parameters : 要传递给javascript函数的参数,用逗号分开,是可选的。
js调用as定义的方法
AddCallback方法:AddCallback方法是一个静态方法,允许javascript调用flash as中定义的函数方法
语法:ExternalInterface.addCallback(functionID:String, instance:Object, functionName:Function);
参数描述:
functionID: 从javascript调用ActionScript函数时可使用的名称(即别名,映射as中的实际函数方法名称)。此名称不必与ActionScript方法的实际名字匹配。
instance this在该方法中被解析成的对象。此对象不一定是在其上可找到该方法的对象,你可以指定任何对象(不指定时,该参数不可省略,填null)
functionName: 要从javascript调用的AcrionScript实际定义的函数方法名。
实例:
flash 源文件demo1.fla调用页面js定义的jsFun() 方法
//导入包,必须
import flash.external.*;
//flash按钮 _btn 加点击事件
_btn.onRelease=function ()
{
ExternalInterface.call("jsFun");
}
页面js调用flash 源文件demo1.fla中定义的asFun()方法
demo1.fla中定义:
//导入包,必须
import flash.external.*;
function asFun()
{
//这里加as脚本
}
ExternalInterface.addCallback("gotoRun",null,asFun); //gotoRun是asFun的别名,供js调用;第2个参数不指定必须设为null!
页面js调用写法:
html部分,插入flash标签必须加name属性,如下加粗代码所示:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="flash宽度" height="flash高度">
<param name="movie" value="flash地址">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<embed src="flash地址" wmode="transparent" quality="high" pluginspage="https://www.macromedia.com/go/getflashp
layer" type="application/x-shockwave-flash" width="flash宽度" height="flash高度" name="swf">
</object>
js部分:(注意:必须使用name值来调用flash标签对象,不能改用id或class)
document.swf.gotoRun(); //swf即指html flash标签中定义的name值
参考文献:https://wmd212.blog.sohu.com/64859873.html
1条评论( 网友:1 条,站长:0 条 ) 网友评论{有您的评论更精彩....}