[web] Javascript 使用flsah object

我在網站上加了jquery dialog 裡面放了flash動畫

乍"看"之下chrome 和IE8都很正常

殊不知一聽 就發現出有錯

IE8再關閉dialog時 flash的物件不會停止 chrome沒這問題
我的猜測是 chrome在 dialog被關閉時 期內所屬的東西都會被free掉或是停止
 IE則不會
所以就去查了一些方法看可不可以用 javascript 操作flash
事實上是可以的
但有一些跨瀏覽器的問題
但用以下解決方法就OK






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 object

取得之後
我就在dialog關閉時把動畫暫停
再開啟dialog時就把 動畫重頭開始播放
用了以下的method

暫停
flashObject.stop()

從頭
flshObject.rewind()

開始播放
flshObject.play()

這樣就OK了

參考資料
get flash object
http://www.permadi.com/tutorial/flashGetObject/
flash object api
http://www.coldfusionmx.com.br/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

留言

這個網誌中的熱門文章

電腦網路project