在第一次结束后播放第二个Flash视频

时间:2010-12-14 01:15:06

标签: javascript flash swfobject

我有一个以标准格式设置的flash对象:

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("swfplayer.swf", "myContent", "300", "120", "9", "expressInstall.swf");
</script>

但我想在第一个视频结束的那一刻开始在网页的不同部分播放第二个Flash视频。是否有某种倾听者可以使用?

由于

3 个答案:

答案 0 :(得分:2)

实际上有一种方法可以做到这一点,前提是你的电影或多或少基于时间轴。你可以通过javascript对flash对象进行一些调用,这些调用将返回你可以检查的值,以确定电影是否完整。

要检索电影使用的当前帧:

document.getElementById("myFlashObject").TCurrentFrame("_root");

要检查电影是否正在播放:

document.getElementById("myFlashObject").IsPlaying()

如果使用“stop()”方法在帧上停止影片,则返回false。你可以使用其他一些方法,你可能会发现在播放另一部电影时很有用。这是Adobe参考文档的链接:

http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

注意: 我对此进行了测试,它适用于Firefox中的Flash播放器10。您可能需要仔细检查这些方法的跨浏览器兼容性。

答案 1 :(得分:1)

您可以从以下两种可能性中接近它: LocalConnection ExternalInterface

我会亲自使用 ExternalInterface 。有了它,您可以设置一个javascript函数,在视频结束时接收来自videoPlayer_1的调用。对于这个javascript函数,你可以传递一个ID来确定哪个玩家已经完成,然后将一个回调发送给相应的下一个玩家,告诉它开始玩。您可以像使用/ swf一样多次重复此过程。

我会包含一个例子,但你没有提到as2或3。

对于 LocalConnection ,您可以使用本地数据连接创建一组电影,但这很容易被多个浏览器/ swfs的某些情况所打破,因此可能不是最可靠的方法。但是如果你想试一试,请查看Grant Skinner的SwfBridge课程,以便让事情变得更轻松。

答案 2 :(得分:0)