2024年1月10日发(作者:)

ActionScript编程 关闭与清除视频

作用:

将正在播放的视频关闭,并清除在video对象中显示的视频最后1帧。

说明:

在之前的小节中,已介绍过如何加载外部的视频并播放,并介绍过通过pause()方法以及togglePause()方法暂停正在播放的视频。ActionScript还允许用户关闭正在播放的视频,并将播放的视频从Video对象中清除。

1.关闭视频

在使用pause()方法或togglePause()方法暂停视频时,只能暂停视频的播放,无法将视频从NetStream对象中清除,也无法停止网络视频的下载。因此,在ActionScript3.0中,NetStream类提供了close()方法,可以帮助用户停止视频文件的播放和下载,如下所示。

();

当调用close()方法时,Flash播放器会从NetStream对象中删除FLV/F4V视频流的数据,使视频无法通过NetStream类的resume()方法回放。同时,NetStream类的time属性也将清零。

2.清除视频

当使用NetStream类的close()方法将视频流数据关闭后,在Video对象中仍然会存在视频播放的最后1帧图像。要想清除该帧的图像,需要调用Video类的clear()方法,如下所示。

();

如果用户需要继续从Video对象中播放视频,则需要重新为Video对象加载视频流对象,如下所示。

NetStream(NetStreamObject);

示例:

使用NetStream类的close()方法和Video类的clear()方法,可以方便地关闭和清除视频,实现多个视频之间的跳转与切换。例如,通过

数组存储6个视频,然后通过列表选择视频进行播放,并提供关闭和清除视频的按钮,如下所示。

for (var i:int=0; i<=5; i++) {

//通过循环生成文本域

var textField:TextField=new TextField();

textField.x=400;

textField.y=25+i*22;

="video0"+(i+1)+".f4v";

=22;

=100;

ld(textField);

//定义文本域的属性,并将其显示到舞台中

ntListener(,playVideo);

//为文本域添加鼠标单击事件,调用playVideo()事件函数

}

var netConnection:NetConnection=new NetConnection();

//实例化视频数据连接对象

t(null);

//定义连接名称

var netStream:NetStream=new NetStream(netConnection);

//实例化视频流数据对象

ntListener(_ERROR,AsyncErrorHandler);

//添加异步错误监听事件函数

var video:Video=new Video();

video.x=50;

video.y=20;

NetStream(netStream);

ld(video);

//定义视频对象的属性并将其添加到舞台中

function playVideo(event:MouseEvent=null):void {

//自定义playVideo()事件函数

();

//关闭当前视频

();

//清除视频的显示

();

//根据文本字段的内容播放视频

NetStream(netStream);

//将视频流应用到视频对象中

}

function AsyncErrorHandler(event:AsyncErrorEvent=null):void{

//调度异步错误事件

}