package ch14_1
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.AsyncErrorEvent;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.GlowFilter;
import flash.geom.Rectangle;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.text.TextField;
public class SliderFLVText extends MovieClip
{
var nc:NetConnection = new NetConnection();//通过NetConnection 对象nc,建立数据和数据源的连接
var ns:NetStream ;
var video:Video = new Video(550,400);//视频框对象video,width =550,height =400
var clientObj:Object = new Object();
var slider:Sprite = new Sprite();
var sliderBar :Sprite = new Sprite();
var isDragging:Boolean = false;
var duration:Number;
public function SliderFLVText()
{
nc.connect(null);//视频位置在本地,null
ns= new NetStream(nc);//声明一个ns,使用nc作为连接的参数
ns.play("video/梦想宣言.flv");
addChild(video);//显示
video.smoothing =true;//是哦in渲染时使用平滑处理
video.attachNetStream(ns);//指定视频对象显示视频流ns
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncError);//定义回调函数
clientObj.onMetaData= function (metadata:Object)
{
duration = metadata.duration;
}
ns.client =clientObj;
slider.graphics.beginFill(0xEEEEEE);
slider.graphics.drawRect(0,370,550,10);
slider.alpha = 0.7;
addChild(slider);
sliderBar.graphics.beginFill(0xFF0000);
sliderBar.graphics.drawRect(0,0,20,10);
sliderBar. y =370;
sliderBar.buttonMode =true;
slider.addChild(sliderBar);
sliderBar.addEventListener(MouseEvent.MOUSE_DOWN,beginDrag);
sliderBar.addEventListener(MouseEvent.MOUSE_MOVE,Draging);
sliderBar.addEventListener(MouseEvent.MOUSE_UP,stopDrag1);
stage.addEventListener(Event.ENTER_FRAME,update);
}
private function asyncError(e:AsyncErrorEvent):void {}
private function beginDrag(e:MouseEvent):void
{
e.target.startDrag(false,new Rectangle(0,370,530,0));
ns.pause();
stage.removeEventListener(Event.ENTER_FRAME,update);
isDragging =true;
}
private function Draging(e:MouseEvent):void
{
if(isDragging )
{
try{
ns.seek(sliderBar.x/530*duration);
}catch(e:Error){}
}
}
private function stopDrag1(e:MouseEvent):void
{
sliderBar.stopDrag();
stage.addEventListener(Event.ENTER_FRAME,update);
ns.resume();
isDragging =false;
}
private function update(e:Event):void
{
sliderBar.x = ns.time/duration*530;
}
}
}
AS3.0实现视频播放进度控制条
最新推荐文章于 2018-04-03 21:03:34 发布