Javascript 在第一段视频结束后播放第二段flash视频

Javascript 在第一段视频结束后播放第二段flash视频,javascript,flash,swfobject,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> 嵌入swf(“swfp

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

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

嵌入swf(“swfplayer.swf”、“myContent”、“300”、“120”、“9”、“expressInstall.swf”);
但是我想在第一个视频结束的那一刻开始在网页的不同部分播放第二个flash视频。是否有某种类型的倾听者可以使用


谢谢

请看

您可以从以下两种可能性着手:本地连接外部接口

我个人会选择外部接口。使用它,您可以设置一个javascript函数,当视频播放器1的视频结束时,该函数接收来自视频播放器1的调用。对于这个javascript函数,您可以传递一个ID来确定哪个播放器已经完成,然后向相应的下一个播放器发送一个回调,告诉它开始播放。你可以通过视频重复这个过程,重复次数与你使用/swf的次数相同

我本想举个例子,但你没有提到as2或AS3


至于LocalConnection,您可以使用本地数据连接创建一组电影,但这很容易被多个浏览器/swf的特定场景打破,因此可能不是最可靠的方法。不过,如果你想试一试,可以查阅格兰特·斯金纳的SwfBridge类,让事情变得更简单。

如果你的电影或多或少是基于时间线的,那么实际上有一种方法可以做到这一点。您可以通过javascript对flash对象进行几个调用,这些调用将返回您可以检查的值,以确定电影是否完成

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

document.getElementById("myFlashObject").TCurrentFrame("_root");
要检查电影是否正在播放,请使用:

document.getElementById("myFlashObject").IsPlaying()
如果使用“stop()”方法在帧上停止电影,则返回false。还有很多其他的方法你也可以使用,你可能会发现在播放另一部电影时很有用。以下是Adobe参考文档的链接:


注意:我对此进行了测试,它与firefox中的flash player 10配合使用。您可能需要仔细检查这些方法的跨浏览器兼容性。

如何在javascriptonly javascript中实现这一点?你没有访问.fla的权限?我有,但我对actionscript不太精通,我想知道是否可以用javascriptwell完成。这就是我礼貌地退出的地方。如果您需要尝试ExternalInterface路由,我可以帮助您使用ActionScript和简单的JS。@kingsley我在这方面与Ribs合作,我认为您最好的方法是修改AS代码,使用ExternalInterface上的静态方法调用javascript,然后在javascript中再次对辅助swf进行另一个方法调用使用ExternalInterface中适当的静态方法进行修改,如果您拥有两个swf文件的源代码,那么实现此功能所需的修改不会像代码那样多,因此无需担心。flash电影中是否有实际的视频?flash电影是否总是播放相同的时间长度?是的,有flv视频,长度是固定的