chenjian_791 发表于 2013-1-29 08:52:53

js载入flash

载入方法1:
通过swfobject公共框架
http://static.51img1.com/v5/t/js/swfobject.js
var params = {menu: 'false',quality:'high',wmode:'transparent',allowScriptAccess:'always'};var flashvars = {acc:account,cookieF:cookieF};var attributes = {id:'game_ring',name:'game_ring'}; swfobject.embedSWF("snsRing.swf", "act_christmas_game", "620", "700", "10.2.0", "expressInstall.swf", flashvars, params, attributes);
其中act_christmas_game为载入容器的id,expressInstall.swf为升级的swf文件,需要传到网站目录
10.2.0为flash版本号,620为宽度,700为高度
并且在div容器内添加如下内容:
这里是flash内容,当前的浏览器没有安装或者FlashPlyaer版本不够高,请从<a href="http://www.adobe.com/go/getflashplayer" target="_blank">这里</a>下载安装最新的FlashPlayer

载入方法2:
调用jquery扩展方法:
http://static.51img1.com/v3/pub/js/global.js
$("#hello_flash").flash("SayHello.swf",{"always":"allowScriptAccess","transparent":"wmode"});
载入方法3:
自定义函数:
function flash_html(swfName,id,width,height,game){    if(!swfName) return '';    var flashUI = [];    var server_flash =swfName + '.swf?v='+Math.random();    if(game ==1){         server_flash =swfName + '.swf?v='+Math.random()+"&acc="+account+"&cookieF="+'1';    }    if ($.browser.msie) {      flashUI.push('<object codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+ id +'" width="'+ width +'" height="'+ height +'" type="application/x-shockwave-flash" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"><param value="'+server_flash+'" name="movie" /><param value="high" name="quality" /><param value="transparent" name="wmode" /><param value="all" name="allowNetworking" /><param value="false" name="allowFullScreen" /><param value="true" name="menu" /><param value="always" name="allowScriptAccess" /></object>');            } else {      flashUI.push('<embed id="'+id+'" src="'+server_flash+'" allowNetworking="all" wmode="transparent" quality="high" type="application/x-shockwave-flash" width="'+ width +'" height="'+ height +'" menu="true" allowFullScreen="false" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed>');    }    return flashUI.join('');}var christmas_flash = flash_html('eggs', 'prize_flash', '700', '250');$('#act_christmas_flash').html(christmas_flash);
说明:
方法1的flash安装提示文字放入flash容器,根据版本参数flash会提示升级
方法2和方法3用js载入flash有个问题,如果div从隐藏状态切换到显示状态flash安装提示条不显示,另外需增加flash版本判断逻辑,低版本的flash

不能正常运行

调用flash里的函数
方法1:
function this_movie(movieName) {    if (navigator.appName.indexOf("Microsoft") != -1) {      return window;    } else {      return document.getElementById_x(movieName);    }}this_movie('prize_flash').reset();
prize_flash为flash的id

方法2:
$('#prize_flash').reset();
注:flash调用php接口通常是json格式或xml格式,也可调用js函数

附件swfobject为公共类库,global为jquery兼容函数
页: [1]
查看完整版本: js载入flash