用Video,NetConnection,NetStream类来加载并播放flv文件。在脚本中要处理相应的事件:
NetStatusEvent-当NetConnection对象执行connect()方法后会改变NetStatus;NetStream对象执行Play()方法时的出错处理也由它来监听。
SecurityErrorEvent-NetConnection对象执行connect()出错的监听器。
AsyncErrorEvent-NetStream对象执行play()出错的监听器。
Demo:
package {
import flash.display.Sprite;
import flash.events. * ;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class NetStatusEventExample extends Sprite {
private var videoURL:String = " Video.flv " ;
private var connection:NetConnection;
private var stream:NetStream;
public function NetStatusEventExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect( null );
}
private function netStatusHandler(event:NetStatusEvent): void {
switch (event.info.code) {
case " NetConnection.Connect.Success " :
connectStream();
break ;
case " NetStream.Play.StreamNotFound " :
trace( " Unable to locate video: " + videoURL);
break ;
}
}
private function connectStream(): void {
var stream:NetStream = new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoURL);
addChild(video);
}
private function securityErrorHandler(event:SecurityErrorEvent): void {
trace( " securityErrorHandler: " + event);
}
private function asyncErrorHandler(event:AsyncErrorEvent): void {
// ignore AsyncErrorEvent events.
}
}
}
import flash.display.Sprite;
import flash.events. * ;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class NetStatusEventExample extends Sprite {
private var videoURL:String = " Video.flv " ;
private var connection:NetConnection;
private var stream:NetStream;
public function NetStatusEventExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect( null );
}
private function netStatusHandler(event:NetStatusEvent): void {
switch (event.info.code) {
case " NetConnection.Connect.Success " :
connectStream();
break ;
case " NetStream.Play.StreamNotFound " :
trace( " Unable to locate video: " + videoURL);
break ;
}
}
private function connectStream(): void {
var stream:NetStream = new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoURL);
addChild(video);
}
private function securityErrorHandler(event:SecurityErrorEvent): void {
trace( " securityErrorHandler: " + event);
}
private function asyncErrorHandler(event:AsyncErrorEvent): void {
// ignore AsyncErrorEvent events.
}
}
}