狭路百度云:四、FLASH课件工具面板积件制作(9)----制作flv播放器 - Qzone日志
来源:百度文库 编辑:中财网 时间:2024/04/27 03:05:23
1、创建新元件,名称:swf播放器,类型:影片剪辑。
2、打开“swf影片剪辑”,创建新图层,并重新命名,如下图
3、在“窗口边框”层制作一个546×380的长方形。定位:x=0,y=0。
4、在“窗口”层制作一个512×288的白边黑底的长方形。定位:x=17,y=33。
5、首先我们打开Flash的元件库,如图下图所示,我们点击红色的部分新建一个视频元件。
在“video”图层,将视频元件从元件库拖到舞台中并更改大小为512*288,给舞台中的视频元件命名实例名为:vflv,定位:x=17,y=33。如图
6、在“controlBar”层制作一个512×37的无边渐变底的长方形。位置:x=17,y=327。
7、在“音量控件”层制作一个103×5.6无边白底的长方形。选中该长方形把它转为影片剪辑,命名为“音量控制”实例名为“volbtnctrl”。
打开“音量控制”影片剪辑,选中该长方形定位:x=0,y=0。
新建一个图层制作一个3×7的滑块,选中该滑块把它转为影片剪辑,命名为“滑块”实例名为“volbtn”。选中“滑块”影片剪,打开动作面板写上代码:
on (releaseOutside, release) {
stopDrag();
}
新建一个as2图层,打开动作面板写上代码:
volbtn.onPress = function() {
volbtn.startDrag(true,0,0,100,0);
volbtn.isDragging = true;
};
volbtn.onMouseMove = function() {
if (volbtn.isDragging) {
_parent.mysound.setVolume(volbtn._x);
}
};
8、在“txt”层制作三个动态文本框,“标题”、“时间”文本实例名分别为“bt_txt”、“times”,音量文本变量名为vol。
9、在“btn”层制作“播放”、“暂停”、“停止”和“打开”按钮,实例名分别为“play_btn”、“ pause_btn”、“stop_btn”和“dkwj_btn”。复制一个“播放”按钮,实例名分别为“play1_btn”把它放在“play_btn”按钮上面。
再做两个“窗口显示比例”按钮,实例名分别为“windows1_btn”和“ windows2_btn”。如下图:
全部布局如下图:
10、新建一个“as2”图层,打开动作面板写上代码:
/*=========朱邦根 QQ:286866998 ========*/
//创建一个 NetConnection 对象
var ncvideo:NetConnection = new NetConnection();
//创建一个本地流连接
//true代表将ncvideo写入硬盘,false、mull或省略代表不写入,只作临时存在
ncvideo.connect(null);
//创建一个 NetStream 对象并定义一个 onStatus() 函数
var nsvideo:NetStream = new NetStream(ncvideo);
this.createEmptyMovieClip("flv_mc",this.getNextHighestDepth());
//将 NetStream 音频输入信号附加到Audio 对象
flv_mc.attachAudio(nsvideo);
var mysound:Sound = new Sound(flv_mc);
var vpath:String;
function playvideo(videopath) {
nsvideo.play(videopath);
//设置缓冲时间
nsvideo.setBufferTime(1);
//将 NetStream 视频输入信号附加到 Video 对象
vflv.attachVideo(nsvideo);
}
//定义总持续时间全局变量,并获得其值。
var nduration:Number=0;
nsvideo.onMetaData = function(infoObject:Object) {
//获得FLV文件中嵌入的描述性信息,这里获得获得总持续时间(单位:秒)
nduration = infoObject.duration;
};
function update():Void {
var npercent:Number = nsvideo.time/nduration*100;
mprogress._xscale = npercent;
abcd.text = Math.floor(npercent*100)/100;
this.bofangtiao.huakuai._x = 544*npercent/100;
this.bofangtiao.playBar._x = 544*npercent/100;
times.text = Math.floor(nsvideo.time/60)+":"+Math.floor(nsvideo.time%60)+" / "+Math.floor(nduration/60)+":"+Math.floor(nduration%60);
bt_txt.text = vpath;
}
var intervalID:Number = setInterval(update, 200);
/**************设置音量控制**************/
onEnterFrame = function () {
mysound.setVolume(volbtnctrl.volbtn._x);
vol = volbtnctrl.volbtn._x;
};
/**************打开文件***************/
//FileReference类提供了在用户计算机和服务器之间上传和下传文件的方法
import flash.net.FileReference;
var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "视频格式 (*.flv)";
imageTypes.extension = "*.flv";
allTypes.push(imageTypes);
var listener:Object = new Object();
listener.onSelect = function(file:FileReference):Void {
vpath = file.name;
playvideo("video/"+vpath);
};
var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
/*============按钮设置==============*/
play_btn.onRelease = function() {
nsvideo.pause(false);
};
2
3
4
5
在“video
6、在“controlBar
7、在“音量控件”层制作一个103
打开“音量控制”影片剪辑,选中该长方形定位:x=0,y=0
新建一个图层制作一个3
on (releaseOutside, release) {
stopDrag();
}
新建一个as2
volbtn.onPress = function() {
volbtn.startDrag(true,0,0,100,0);
volbtn.isDragging = true;
};
volbtn.onMouseMove = function() {
if (volbtn.isDragging) {
_parent.mysound.setVolume(volbtn._x);
}
};
8、在“txt
9、在“btn
再做两个“窗口显示比例”按钮,实例名分别为“windows1_btn
全部布局如下图:
10、新建一个“as
/*=========
//
var ncvideo:NetConnection = new NetConnection();
//
//true
ncvideo.connect(null);
//
var nsvideo:NetStream = new NetStream(ncvideo);
this.createEmptyMovieClip("flv_mc",this.getNextHighestDepth());
//
flv_mc.attachAudio(nsvideo);
var mysound:Sound = new Sound(flv_mc);
var vpath:String;
function playvideo(videopath) {
nsvideo.play(videopath);
//
nsvideo.setBufferTime(1);
//
vflv.attachVideo(nsvideo);
}
//
var nduration:Number=0;
nsvideo.onMetaData = function(infoObject:Object) {
//
nduration = infoObject.duration;
};
function update():Void {
var npercent:Number = nsvideo.time/nduration*100;
mprogress._xscale = npercent;
abcd.text = Math.floor(npercent*100)/100;
this.bofangtiao.huakuai._x = 544*npercent/100;
this.bofangtiao.playBar._x = 544*npercent/100;
times.text = Math.floor(nsvideo.time/60)+":"+Math.floor(nsvideo.time%60)+" / "+Math.floor(nduration/60)+":"+Math.floor(nduration%60);
bt_txt.text = vpath;
}
var intervalID:Number = setInterval(update, 200);
/**************
onEnterFrame = function () {
mysound.setVolume(volbtnctrl.volbtn._x);
vol = volbtnctrl.volbtn._x;
};
/**************
//FileReference
import flash.net.FileReference;
var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "
imageTypes.extension = "*.flv";
allTypes.push(imageTypes);
var listener:Object = new Object();
listener.onSelect = function(file:FileReference):Void {
vpath = file.name;
playvideo("video/"+vpath);
};
var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
/*============
play_btn.onRelease = function() {
nsvideo.pause(false);
};