您还可以在 FLVPlayback 组件的单个实例内打开多个视频播放器,以播放多个视频并在这些视频播放时在它们之间切换。
您在将 FLVPlayback 组件拖到舞台上时创建初始视频播放器。该组件自动为初始视频播放器分配数字 0,并使其成为默认播放器。若要创建其他视频播放器,只需将
activeVideoPlayerIndex
属性设置为新的数字。通过设置
activeVideoPlayerIndex
属性,还可以使指定的视频播放器成为
活动
视频播放器,FLVPlayback 类的属性和方法将会影响该播放器。但是,设置
activeVideoPlayerIndex
属性并不会使视频播放器可见。若要使视频播放器可见,请将
visibleVideoPlayerIndex
属性设置为该视频播放器的编号。有关这些属性如何与 FLVPlayback 类的方法和属性进行交互的详细信息,请参阅
用于 Adobe Flash Platform 的 ActionScript 3.0 参考
中的 FLVPlayback.activeVideoPlayerIndex 和 FLVPlayback.visibleVideoPlayerIndex 属性。
以下 ActionScript 代码加载
source
属性,以便在默认视频播放器中播放视频文件并为其添加提示点。当
ready
事件发生时,事件处理函数通过将
activeVideoPlayerIndex
属性设置为数值 1 来打开第二个视频播放器。它为第二个视频播放器指定一个 FLV 文件和一个提示点,然后使默认播放器 (0) 再次成为活动视频播放器。
/**
Requires:
- FLVPlayback component on the Stage with an instance name of my_FLVPlybk
*/
// add a cue point to the default player
import fl.video.*;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/clouds.flv";
my_FLVPlybk.addASCuePoint(3, "1st_switch");
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener);
function ready_listener(eventObject:VideoEvent):void {
// add a second video player and create a cue point for it
my_FLVPlybk.activeVideoPlayerIndex = 1;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/water.flv";
my_FLVPlybk.addASCuePoint(3, "2nd_switch");
my_FLVPlybk.activeVideoPlayerIndex = 0;
};
若要在播放一个 FLV 文件时切换到另一个 FLV 文件,必须在您的 ActionScript 代码中进行该切换。提示点允许您使用
cuePoint
事件在 FLV 文件中介入特定点。以下代码为
cuePoint
事件创建一个侦听器,并且调用用于暂停活动视频播放器 (0) 的处理函数,切换到第 2 个播放器 (1),然后播放其 FLV 文件:
import fl.video.*;
// add listener for a cuePoint event
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener);
// add the handler function for the cuePoint event
function cp_listener(eventObject:MetadataEvent):void {
// display the no. of the video player causing the event
trace("Hit cuePoint event for player: " + eventObject.vp);
// test for the video player and switch FLV files accordingly
if (eventObject.vp == 0) {
my_FLVPlybk.pause(); //pause the first FLV file
my_FLVPlybk.activeVideoPlayerIndex = 1; // make the 2nd player active
my_FLVPlybk.visibleVideoPlayerIndex = 1; // make the 2nd player visible
my_FLVPlybk.play(); // begin playing the new player/FLV
} else if (eventObject.vp == 1) {
my_FLVPlybk.pause(); // pause the 2nd FLV
my_FLVPlybk.activeVideoPlayerIndex = 0; // make the 1st player active
my_FLVPlybk.visibleVideoPlayerIndex = 0; // make the 1st player visible
my_FLVPlybk.play(); // begin playing the 1st player
}
}
my_FLVPlybk.addEventListener(VideoEvent.COMPLETE, complete_listener);
function complete_listener(eventObject:VideoEvent):void {
trace("Hit complete event for player: " + eventObject.vp);
if (eventObject.vp == 0) {
my_FLVPlybk.activeVideoPlayerIndex = 1;
my_FLVPlybk.visibleVideoPlayerIndex = 1;
my_FLVPlybk.play();
} else {
my_FLVPlybk.closeVideoPlayer(1);
}
};
在您创建新的视频播放器时,FLVPlayback 实例将其属性设置为默认视频播放器的值,但
source
、
totalTime
和
isLive
属性除外,FLVPlayback 实例始终将它们分别设置为以下默认值:空字符串、0 和
false
。该实例将
autoPlay
属性(对于默认视频播放器,默认为
true
)设置为
false
。
cuePoints
属性没有任何影响,并且不影响以后加载到默认视频播放器中。
控制音量、位置、尺寸、可见性和用户界面控件的方法和属性始终是全局的,并且设置
activeVideoPlayerIndex
属性后并不影响它们的行为。有关这些方法和属性以及设置
activeVideoPlayerIndex
属性的效果的详细信息,请参阅
用于 Adobe Flash Platform 的 ActionScript 3.0 参考
中的 FLVPlayback.activeVideoPlayerIndex 属性。其余的属性和方法针对
activeVideoPlayerIndex
属性值所标识的视频播放器。
但是,控制尺寸的属性和方法与
visibleVideoPlayerIndex
属性
相互影响
。有关详细信息,请参阅
用于 Adobe Flash Platform 的 ActionScript 3.0 参考
中的 FLVPlayback.visibleVideoPlayerIndex 属性。