如何控制音乐音量的淡出淡入效果?
解决思路(必须要有)
运用FLASH提供的普通的关闭音乐功能,很难实现点击一个按钮就能随意控制音乐的效果,那么,这里到底有什么奥妙呢?其实方法很简单。将两个同样的按钮放置在不同的影帧里,然后利用按钮的Action来切换这两个影帧。用绑定库里的声音的方法来控制声音。可以通过AS来控制变量以达到淡入淡出的效果。
具体步骤
1,运行flash mx,导入一段音乐。设置此音乐元件的的连接属性,命名为“music”。如图1所示。
图1 连接属性设置
2, 在主场景的第1帧加入绑定音乐语句:
//这是绑定声音的代码
loop = new Sound();
loop.attachSound("music");//music是在库里做链接时的标识名
3, 新建一个影片剪辑元件,命名为“da”。进入编辑区,在第1帧加入:
loop = new Sound();
loop.attachSound("music");//music是在库里做链接时的标识名
stop();();//动画播放时让da(大)停在第一帧
第2帧加:
_root.loop.start(0,200);//控制声音开始播放
_root.loop.setVolume(0);//设置声音音量为0
第3帧加:
_root.loop.setVolume(0);//设置声音音量为0
if (i>=100) { //设置判断条件,当i>=100时,执行括号中的语句
_root.gotoAndStop("on");//主时间轴跳转影帧
}
i = i+10;
_root.loop.setVolume(i);//设置声音音量为i
第15帧加:
gotoAndPlay(3);//返回第三帧,反复执行
_root.gotoAndStop("on");//主时间轴跳转影帧
}
i = i+10;
_root.loop.setVolume(i);//设置声音音量为i
第15帧加:
gotoAndPlay(3);//返回第三帧,反复执行
时间线如图2所示。
图2 影片剪辑“da”的时间线
4,新建一个影片剪辑,命名为“xiao”。进入编辑区以后在第1帧加:
stop();//动画播放时让da(大)停在第一帧
第2帧加:
if (i>0) {
i = i-10;
_root.loop.setVolume(i);
} else {
_root.loop.stop();//如果i<=0,让声音停止
_root.gotoAndStop("off");//主时间轴影帧跳转
}
第10帧加:
i = i-10;
_root.loop.setVolume(i);
} else {
_root.loop.stop();//如果i<=0,让声音停止
_root.gotoAndStop("off");//主时间轴影帧跳转
}
gotoAndPlay(2);//返回第二帧,反复执行
时间线如图3所示。
图3 影片剪辑“xiao”时间线
5, 新建两个文字按钮,本别命名为“开始音乐”和“停止停止”。如图4所示。
图4 “开始音乐”按钮
6, 回到主场景,在第2帧插入关键帧。把影片剪辑“da”拖放到场景中,在下面的属性面板中设置他的分身名为“da”。同时把“开始音乐”按钮拖放到场景中。如图5所示。
图5 第2帧
7, 选中“开始音乐”按钮,添加as:
on (release) {
tellTarget ("_root.da") { //指向_root.da
gotoAndPlay(2); //播放
}
}
8, 在第11帧插入一个关键帧。按照步骤6的方法把影片剪辑“xiao”和“停止音乐”按钮拖放到场景中。并在按钮上添加as:
tellTarget ("_root.da") { //指向_root.da
gotoAndPlay(2); //播放
}
}
on (release) {
tellTarget (_root.xiao) { //指向影片剪辑xiao
gotoAndPlay(2); //跳转到第2帧播放
}
}
9,好了,这个事例做完了。测试保存吧。请参看源文件
控制音量淡出淡入.fla
tellTarget (_root.xiao) { //指向影片剪辑xiao
gotoAndPlay(2); //跳转到第2帧播放
}
}