今天忙坏了,又是弄机器又是桌子的!哎,一开始都是难啊!还好,还留了点力气写点东西了!
继续昨天的内容,今天我们要加上一个控制条,可以拖拉来控制我们的音乐的播放位置。其实这个功能非常的简单,就是用到了影片剪辑的的startDrag和stopDrage两个方法,以及我们两个鼠标事件MouseEvent.MOUSE_DOWN---鼠标按下,MouseEvent.MOUSE_UP---鼠标松开。
1,新建一个文档命名为“控制条.fla”。然后创建3个影片剪辑分别命名为“底色,滑道,滑块”,如图:
底色mc
把x,y属性调成:0,0
随便画一个矩形,按照自己喜欢的样式进行调整。
滑道mc
把x,y属性调成:0,0
也是随便画一个矩形,按照自己喜欢的样式进行调整,但是要注意的是要和底色的颜色分开!
滑块mc
把x,y属性调成:0,0
好了,以上就是我们创建的3个影片剪辑
2,返回舞台,创建4个新层分别命名为“控制层”,“滑块”,“滑道”,“底色”,如图:
然后在“底层”上一个“底色”影片剪辑,“进度层”放“滑道”影片剪辑,“滑块层”放滑块影片剪辑,控制层放3个按钮“开始”,“停止”,“暂停”
最后的效果如下:
注意,当把滑块和滑道拖上来之后,使用对齐工具使他们两个左对齐。
3,在代码层写如下代码
代码
//声明
var url:URLRequest=new URLRequest("../ych.mp3");
var soundControl:SoundChannel=new SoundChannel();
var sound:Sound=new Sound();
var mp3position:Number=0;
sound.load(url);
//添加按钮监听
sound.addEventListener(Event.COMPLETE,completeMp3);
play_btn.addEventListener(MouseEvent.CLICK,playMp3);
stop_btn.addEventListener(MouseEvent.CLICK,stopMp3);
pause_btn.addEventListener(MouseEvent.CLICK,pauseMp3);
function completeMp3(e){
soundControl=sound.play();
}
function playMp3(e){
soundControl.stop();
soundControl=sound.play(mp3position);
}
function stopMp3(e){
soundControl.stop();
}
function pauseMp3(e){
mp3position=soundControl.position;
soundControl.stop();
}
//添加滑块监听
hk_mc.addEventListener(MouseEvent.MOUSE_DOWN,hkdown);
hk_mc.addEventListener(MouseEvent.MOUSE_UP,hkup);
function hkdown(e){
//取得滑道的x坐标
var rx=hd_mc.x;
//取得滑块的y坐标
var ry=hk_mc.y;
//取得矩形的长
var rw=hd_mc.width-hk_mc.width;
//取得矩形的高
var rh=0;
//定义个矩形范围用来规定滑块滑动的范围
var range:Rectangle=new Rectangle(rx,ry,rw,rh);
//false的作用是锁定到用户首次单击该 Sprite 时所在的点上
hk_mc.startDrag(false,range);
}
function hkup(e){
hk_mc.stopDrag();
}
var url:URLRequest=new URLRequest("../ych.mp3");
var soundControl:SoundChannel=new SoundChannel();
var sound:Sound=new Sound();
var mp3position:Number=0;
sound.load(url);
//添加按钮监听
sound.addEventListener(Event.COMPLETE,completeMp3);
play_btn.addEventListener(MouseEvent.CLICK,playMp3);
stop_btn.addEventListener(MouseEvent.CLICK,stopMp3);
pause_btn.addEventListener(MouseEvent.CLICK,pauseMp3);
function completeMp3(e){
soundControl=sound.play();
}
function playMp3(e){
soundControl.stop();
soundControl=sound.play(mp3position);
}
function stopMp3(e){
soundControl.stop();
}
function pauseMp3(e){
mp3position=soundControl.position;
soundControl.stop();
}
//添加滑块监听
hk_mc.addEventListener(MouseEvent.MOUSE_DOWN,hkdown);
hk_mc.addEventListener(MouseEvent.MOUSE_UP,hkup);
function hkdown(e){
//取得滑道的x坐标
var rx=hd_mc.x;
//取得滑块的y坐标
var ry=hk_mc.y;
//取得矩形的长
var rw=hd_mc.width-hk_mc.width;
//取得矩形的高
var rh=0;
//定义个矩形范围用来规定滑块滑动的范围
var range:Rectangle=new Rectangle(rx,ry,rw,rh);
//false的作用是锁定到用户首次单击该 Sprite 时所在的点上
hk_mc.startDrag(false,range);
}
function hkup(e){
hk_mc.stopDrag();
}
好了,此时我们的功能就已经实现了,但是只能拖动,还不能实现拖动到那里,从哪里播放。明天我们继续此程序。