Как прослушивать события с помощью swfobject (например, «onVideoEnded») - PullRequest
0 голосов
/ 02 ноября 2011

Я встраиваю SWF-фильм в мой html с помощью статического метода публикации swfobject:

<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 никогда не вызывается, и я не могу понять, почему.

Я был бы очень рад, если бы вы могли мне помочь.

спасибо

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Я решил это с помощью flowplayer. он очень прост в использовании и предлагает достаточные возможности конфигурации. в любом случае спасибо за вашу помощь.

0 голосов
/ 02 ноября 2011

Я не могу говорить с кодом onJavaScriptBridgeCreated, но ваш код SWFObject неверен, вам нужно включить узел <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>

...