当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > AS3教程:按顺序播放多个FLV视频

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 AS3教程:按顺序播放多个FLV视频


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 372 ::
收藏到网摘: n/a

有时候,需要按顺序播放多个FLV视频段落,一个接着一个播放,在一个FLV文件播放结束时,等待播放另一个FLV文件,此时如果处理不好就会停顿,以下以FLASH CS3(AS 3.0)说明一下。

    假设舞台上有一个id是Flvp的FLVplayback对象,第一段代码:
    import fl.video.MetadataEvent;
    import fl.video.VideoEvent;

    this.Flvp.skin="key/SkinUnderPlayStopSeekMuteVol.swf";
    this.Flvp.volume=0.2;
    Flvp.width=320;
    Flvp.height=256;
    Flvp.x=132.3;
    Flvp.y=56;

    现在需要播放视频第一段视频,代码:
    this.Flvp.load("[url=file:///D|/My]file:///D|/My[/url] Documents/Echo/尼克·波利泰尼网球教程/1-致命正手/1.1-致命正手.flv");

    第一段视频结束后播放第二段视频,代码:
   Flvp.addEventListener(fl.video.VideoEvent.COMPLETE,Flvpcomplete);
   function Flvpcomplete(eveObj:fl.video.VideoEvent):void {
        this.Flvp.load("[url=file:///D|/My]file:///D|/My[/url] Documents/Echo/尼克·波利泰尼网球教程/1-致命正手/1.2-致命正手.flv");
        this.Flvp.play();



测试以上代码,发现两段视频撤换时有较长停顿,于是,想想可不可以在快播放完成前LOAD第二段FLV视频,就好像电影院放电影一样,当一台机播放,另一台机准备,快播放完时准备的机已经启动了,FLVplayback类提供了两个属性activeVideoPlayerIndex和visibleVideoPlayerIndex
activeVideoPlayerIndex处理LOAD方法,visibleVideoPlayerIndex处理play方法,修改代码,看看结果:
import fl.video.MetadataEvent;
import fl.video.VideoEvent;
this.Flvp.skin="key/SkinUnderPlayStopSeekMuteVol.swf";
this.Flvp.volume=0.2;
Flvp.width=320;
Flvp.height=256;
Flvp.x=132.3;
Flvp.y=56;

this.Flvp.load("[url=file:///D|/My]file:///D|/My[/url] Documents/Echo/尼克·波利泰尼网球教程/1-致命正手/1.1-致命正手.flv");
Flvp.addEventListener(fl.video.VideoEvent.COMPLETE,Flvpcomplete);
Flvp.addEventListener(fl.video.MetadataEvent.CUE_POINT,Flvpvuepoint);
//增加AS提示点,利用提示点事件触发LOAD第二段FLV视频
var cuePt:Object = new Object();
cuePt.time = 400;
cuePt.name = "elapsed_time";
cuePt.type = "actionscript";
Flvp.addASCuePoint(cuePt);
function Flvpcomplete(eveObj:fl.video.VideoEvent):void {
this.Flvp.activeVideoPlayerIndex=1;
this.Flvp.visibleVideoPlayerIndex=1;
Flvp.play();
this.Flvp.volume=0.21;
}
function Flvpvuepoint(eveObj:fl.video.MetadataEvent):void {
trace(eveObj.info.name);
this.Flvp.activeVideoPlayerIndex=1;
this.Flvp.source="[url=file:///D|/My]file:///D|/My[/url] Documents/Echo/尼克·波利泰尼网球教程/1-致命正手/1.2-致命正手.flv";
this.Flvp.activeVideoPlayerIndex=0;
}

利用属性activeVideoPlayerIndex和visibleVideoPlayerIndex指定多个FLV播放器,就可实现FLV播放无缝衔接。