首页 > JavaScript脚本, 前端开发 > JavaScript控制flash操作 兼容IE FF

发表评论 阅读评论 JavaScript控制flash操作 兼容IE FF

2009年11月26日

Flash INTERACTION WITH JAVASCRIPT
今天开发富媒体广告遇到的问题 用JS控制flash 只在IE平台下有效 费尽周折才找到兼容的解决方案
方法如下:
翻译自:http://www.permadi.com/tutorial/flashjscommand/index.html
查看Demo http://www.iamued.com/demo/flashjs/
重点在于 object的id属性 和 EMBED 的name属性 swliveconnect=”true” 属性

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/
shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
  WIDTH="150" HEIGHT="75" id="simplemovie" ALIGN="">
  <PARAM NAME=movie VALUE="simplemovie.swf">
  <PARAM NAME=quality VALUE=medium>
  <PARAM NAME=bgcolor VALUE=#FFFFFF>
  <EMBED src="simplemovie.swf"
    quality=medium
    swliveconnect="true"
    bgcolor=#FFFFFF WIDTH="150" HEIGHT="75"
    name="simplemovie"
    ALIGN=""
    TYPE="application/x-shockwave-flash"
    PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
  </EMBED>
</OBJECT>

通过js获取flash对象的方法兼容表如下

通过上图得到JavaScript方法来获取flash对象 兼容多浏览器

 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 // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

获取到flash对象可以利用相关方法进行操作

 

  • 播放:: Play()
  • 停止: StopPlay()
  • 停止并回到首帧: Rewind()
  • 下一帧: TGetProperty(nameOfTargetMovieClip, propertyIndex) and GotoFrame(frameNum)
  • 方大或缩小: Zoom(relative percentage)
  • 发送数据: SetVariable(variableName, variableValue)
  • 读取数据: GetVariable(variableName)
  • 查看Demo http://www.iamued.com/demo/flashjs/

    1. 2010年1月10日22:05 | #1

      顶了…

    1. 本文目前尚无任何 trackbacks 和 pingbacks.

    您也可以使用微博账号登陆