您的位置:首页 > Web前端 > JavaScript

javascript与flash的通讯与交互

2013-04-23 16:16 357 查看
利用 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:某些版本输入中文的时候出现乱码。

经验总结来源项目:http://www.dongfeng-nissan.com/Nissan/car/livina
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: