昨天和一个闪友交流FLASH制作的心得,牵涉到一个模拟播放器效果的制作方法,今天抽了点时间,制作了这个教程,与大家共同学习:
点击浏览该文件 先看看效果:
制作步骤如下:
主要的AS解释:
1.第一帧:s=new Sound();
s.attachSound("mysound");
s.onSoundComplete = function() {
s.start();//加载音乐并循环;一开始先不播放;
};
a=1;//设定计数变量的初始值;
2.按钮上加:on(release){
if((a%2)==1){
s.start(b);//奇数次点击按钮,音乐播放,b表示上一次暂停位置;
createEmptyMovieClip("line", 1000);
with (line) {
lineStyle(0, 0x33ff00, 100);
beginFill(0x33ff00, 100);
moveTo(70, 50);
lineTo(70, 0);
lineTo(75, 0);
lineTo(75, 50);
endFill();//这段代码主要是在新建的一个空的MC中,画一个绿色的小矩形,它就是跳动的小矩形的原形;
}
line._visible = false;//把上面产生的主矩形隐藏;
_root.onEnterFrame = function() {
for (var i = 0; i<10; i++) {
duplicateMovieClip("line", "line"+i, i);
with (_root["line"+i]) {
_x += 10*i;
_y =50;//复制10个上面的小矩形,并把它们排好位置;
_yscale = -(10+random(80));//让他们在y方向随机的延伸(最大延长量为90);
}
}
}
}else{
s.stop();//假如是偶数次点击按钮,则音乐停止
_root.b=int(s.position/1000);//记录下停止的位置,给变量b;
createEmptyMovieClip("line", 1000);
with (line) {
lineStyle(0, 0x33ff00, 100);
beginFill(0x33ff00, 100);
moveTo(70, 50);
lineTo(70, 0);
lineTo(75, 0);
lineTo(75, 50);
endFill();//和上面的代码一样,画小矩形;
}
line._visible = false;
_root.onEnterFrame = function() {
for (var i = 0; i<10; i++) {
duplicateMovieClip("line", "line"+i, i);
with (_root["line"+i]) {
_x += 10*i;
_y =50;//复制小矩形和并分别定位;
_yscale = -5;//把他们的y延长量固定为-5,也就是让跳动的小矩形停止跳动;
}
}
}
}
a++;//计数变量自加;
}
说明:1.第二段代码应该可以简化,有爱好的朋友可以自己去试一试!
2.假如能够把_yscale = -(10+random(80));中的参数改成和音乐的频率有关的值,那么效果会更加好,更加逼真!
提供源文件:
点击浏览该文件