簡體   English   中英

如何使用 swfobject 監聽事件(如“onVideoEnded”)

[英]How to listen for events with swfobject (like "onVideoEnded")

我使用 swfobject 的靜態發布方法將 swf 電影嵌入到我的 html 中:

<object id="swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300">
    <param name="movie" value="some.swf" />
    <param name="play" value="false" />
    <param name="menu" value="true" />
    <param name="allowFullScreen" value="true" />
    <param name="loop" value="false" />
    <param name="FlashVars" value="javascriptCallbackFunction=onJavaScriptBridgeCreated" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="some.swf" width="400" height="300">
    <!--<![endif]-->
      <p><a href="http://www.adobe.com/go/getflash">
        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
    </a></p>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
  </object>

我想在視頻完成后觸發一個 Javascript 函數,並在 flashvars 參數中嘗試使用上述回調函數。 我的 Javascript 函數如下所示:

function onJavaScriptBridgeCreated(playerId) {
var player = document.getElementById(playerId);
player.addEventListener("complete", "completeFunc");}

function completeFunc() {
alert('video ended');}

我在http://forums.adobe.com/thread/791624 上找到了這種方法,並針對靜態發布方法 ( http://code.google.com/p/swfobject/wiki/documentation ) 對其進行了修改。

但問題是,函數completeFunc從未被調用,我不知道為什么。

如果你能幫助我,我會很高興。

我無法使用onJavaScriptBridgeCreated代碼,但是您的 SWFObject 代碼不正確,您需要在 BOTH <object>節點中包含<param> <object>節點,如下所示:

<object id="swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300">
    <param name="movie" value="some.swf" />
    <param name="play" value="false" />
    <param name="menu" value="true" />
    <param name="allowFullScreen" value="true" />
    <param name="loop" value="false" />
    <param name="FlashVars" value="javascriptCallbackFunction=onJavaScriptBridgeCreated" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="some.swf" width="400" height="300">
        <param name="play" value="false" />
        <param name="menu" value="true" />
        <param name="allowFullScreen" value="true" />
        <param name="loop" value="false" />
        <param name="FlashVars" value="javascriptCallbackFunction=onJavaScriptBridgeCreated" />
    <!--<![endif]-->
      <p><a href="http://www.adobe.com/go/getflash">
        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
    </a></p>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
  </object>

唯一的例外是 'movie' 參數,它只被 IE 在第一個<object>

我已經通過使用 flowplayer 解決了這個問題。 它非常易於使用並提供足夠的配置可能性。 還是要謝謝你的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM