javascript与flash的通讯与交互
利用 ActionScript,可以在 HTML 页上执行以下操作:
- 调用任何 JavaScript 函数。
- 传递任意数量、具有任意名称的参数。
- 传递各种数据类型(Boolean、Number、String 等等)。
- 接收来自 JavaScript 函数的返回值。
通过在 HTML 页上使用 JavaScript,可以:
- 调用 ActionScript 函数。
- 使用标准的函数调用表示法传递参数。
- 将值返回给 JavaScript 函数。
获取flash以供javascript与其交互之用:
方法一:
function getFlashMovieObject(movieName){ if (window.document[movieName]){ return window.document[movieName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1){ if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; } else{ return document.getElementById(movieName); } }
方法二:
//获取flash的函数 function thisMovie(movieName){ if(navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; } else { return document[movieName]; } } if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE9.0"){ function thisMovie(movieName){ return document[movieName]; } }
琐碎知识点整理:
给插入的swf传递参数:
function setSwf(url, num){ swfobject.embedSWF(url, 'swf_id', 1000, 600, "9.0.0", null, {int:num}, {wmode:"opaque"}, null); }
注意swf的wmode模式设定为opaque的话,占用的浏览器性能会少一些,flash会流畅些。尽量少用transparent透明模式,尤其是在有复杂的flash交互的时候。还可以避免flash的一个bug:某些版本输入中文的时候出现乱码。