firfox下获取不到flash对象

领导为了省钱,赶鸭子上架,硬让做一flash,唉,愁啊。

 

慢慢摸索着终于给做完了,说说遇到的问题吧。

1、碰撞问题

     最开始用的hit和hitTest,都太粗糙了,没办法,只能按照坐标一点一点算了。

2、flash与js交互的问题

     用的callBack和addcallBack来完成,首先是在ie下出问题了,把flash代码直接写form里了,结果直接不调用。终于从网上搜了一段代码加上后,ie好使了,结果火狐下js调用as的方法老提示找不到,无奈,搜了一天。有一篇文章是被疯狂转载的,我开始以为也是addcallback注册时间的问题,后来好好想了一下,好像不是,因为我不是一开始js就调用as,而是在flash之行一段时间后通过按钮来触发,所以应该不是注册时间的问题。后来又搜啊搜,都怪自己太不认真的,最终还是在那篇转载最多的文章里解决问题了。

我原来插入flash的代码

 function cEMedia(id,res,width,height){
          var width = parseInt(width),height = parseInt(height);
          var object = '';
          object = '<object id="'+ id +'" name="'+ id +'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="'+ width +'" height="'+ height +'" align="middle">';
          object += '<param name="allowScriptAccess" value="always" />';
          object += '<param name="movie" value="'+ res +'" />';
          object += '<param name="wmode" value="transparent">';
          object += '<param name="quality" value="high" />';
          object += '<param name="bgcolor" value="#ffffff" />';
          object += '<embed id="'+ id +'" name="'+ id +'" src="'+ res +'" quality="high" wmode="transparent" width="'+ width +'" height="'+ height +'" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
          object += '</object>';
          return object;
      }
这样子的话object和embed的id和name都一样,这样子的话ie下能执行,火狐下虽然能获取到对象,但是就是找不到方法。

后来的代码:

  function cEMedia(id,res,width,height){
          var width = parseInt(width),height = parseInt(height);
          var object = '';
          object = '<object id="'+ id +'_ob" name="doubleGame" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="'+ width +'" height="'+ height +'" align="middle">';
          object += '<param name="allowScriptAccess" value="always" />';
          object += '<param name="movie" value="'+ res +'" />';
          object += '<param name="wmode" value="transparent">';
          object += '<param name="quality" value="high" />';
          object += '<param name="bgcolor" value="#ffffff" />';
          object += '<embed id="'+ id +'_em" name="doubleGame" src="'+ res +'" quality="high" wmode="transparent" width="'+ width +'" height="'+ height +'" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
          object += '</object>';
          return object;
      }

将object和embed的id名字加以区分,就可以了

获取flash对象的代码

  function getFlashMovieObject(movieName){
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName+"_ob"];
         } else {
              return document[movieName+"_em"];
         }
     }

 

浏览器兼容问题愁啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值