十二月 6, 2009 12 : 33 上午 此格有 66 个脚印
即时获得麻球游戏开发的最新消息,关注游戏开发者热门讨论,请各位开发者申请加入麻球官方群:121304476
也可以follow catfly围脖:t.sina.com.cn/iscat
也可以follow catfly围脖:t.sina.com.cn/iscat
通过本文可以了解,flash是如何通过ExternalInterface对象来访问js中的内容,无论是执行js中的方法还是给js传递参数都可以通过ExternalInterface很方便的实现。
而js要访问flash中的内容,则需要先取得页面中的flash对象,可以使用下文提到的getSwfObj方法。
本例,需要用到两个js类库:jquery.js,swfobject.js,请先在页头引用这两个js文件
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
js通过如下方法获得flash对象
function getSwfObj(swfID) {
var swfObj;
if (navigator.appName.indexOf("Microsoft") > -1) {
swfObj = window[swfID];
} else {
swfObj = document[swfID];
}
return swfObj;
}
那么id=”swf1″的flash对象就是getSwfobj(swfid)
需要在页面flash内容加载到后再获取flash对象,所以我们用到jquery中的方法$(document).ready
var swfObjArr = new Array({},{});
var swfIdArr = new Array("swf1","swf2");
$(document).ready(
function(){
for(var i=0;i<swfObjArr.length;i++){
swfObjArr[i] = getSwfObj(swfIdArr[i]);
}
}
);
flash与js的交互:
通过ExternalInterface.call方法来访问js中的函数,与传递参数给js。
ExternalInterface.call(“js函数名”,参数)
通过ExternalInterface.addCallback方法接收js的访问,与接收js传递过来的参数。
ExternalInterface.addCallback(“as函数名”, as方法);
js代码中访问flash的函数为:swfobj.javascriptToSay(say)
swfobj : 访问哪个flash对象(适用页面中有多个flash)
javascriptToSay : 访问flash中的函数名
say : 向flash传递的参数
function jsToSay(swfobj,say){
swfobj.javascriptToSay(say);
}
js代码中被flash访问的函数为:function actionscriptToSay(say)
actionscriptToSay:被flash访问的函数
say:接收flash的参数
function actionscriptToSay(say){
alert(say);
}
示例原文件下载








怎么有from表单的时候就回报错? qnest[引用]
你的意思是,如果页面中有form表单的话,as与js的交互就会报错!
你是这个意思嘛? catlfy[引用]