javascript与flash的通讯与交互 windrainpy

利用 ActionScript,可以在 HTML 页上执行以下操作:

  1. 调用任何 JavaScript 函数。
  2. 传递任意数量、具有任意名称的参数。
  3. 传递各种数据类型(Boolean、Number、String 等等)。
  4. 接收来自 JavaScript 函数的返回值。

通过在 HTML 页上使用 JavaScript,可以:

  1. 调用 ActionScript 函数。
  2. 使用标准的函数调用表示法传递参数。
  3. 将值返回给 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

原文地址:https://www.cnblogs.com/windrainpy/p/3038067.html