[英]How to listen for events with swfobject (like "onVideoEnded")
I am embedding a swf movie into my html with the static publishing method of swfobject:我使用 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>
I want to trigger a Javascript function after the video had finished and tried with the above callback function in the flashvars parameter.我想在视频完成后触发一个 Javascript 函数,并在 flashvars 参数中尝试使用上述回调函数。 My Javascript function looks like this:
我的 Javascript 函数如下所示:
function onJavaScriptBridgeCreated(playerId) {
var player = document.getElementById(playerId);
player.addEventListener("complete", "completeFunc");}
and和
function completeFunc() {
alert('video ended');}
I found this approach at http://forums.adobe.com/thread/791624 and modified it for the static publishing method ( http://code.google.com/p/swfobject/wiki/documentation ).我在http://forums.adobe.com/thread/791624 上找到了这种方法,并针对静态发布方法 ( http://code.google.com/p/swfobject/wiki/documentation ) 对其进行了修改。
But the problem is, the function completeFunc
is never called and I can't figure out why.但问题是,函数
completeFunc
从未被调用,我不知道为什么。
I would be very glad if you could help me out.如果你能帮助我,我会很高兴。
I can't speak to the onJavaScriptBridgeCreated
code, but your SWFObject code is incorrect, you need to include the <param>
node in BOTH <object>
nodes, like so:我无法使用
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>
The only exception is the 'movie' param, which is only used by IE in the first <object>
唯一的例外是 'movie' 参数,它只被 IE 在第一个
<object>
i have solved this by using flowplayer.我已经通过使用 flowplayer 解决了这个问题。 its very easy to use and offers sufficient configuration possibilities.
它非常易于使用并提供足够的配置可能性。 thanks for your help anyway.
还是要谢谢你的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.