淡入淡出按钮
运用FLASH5提供的普通的关闭音乐功能,很难实现点击一个按钮就能随意控制音乐的效果,那么,这里到底有什么奥妙呢?其实方法很简单。将两个同样的按钮放置在不同的影帧里,然后利用按钮的Action来切换这两个影帧。用绑定库里的声音的方法来控制声音。可以通过AS来控制变量以达到淡入淡出的效果。
先看看效果吧:
点击浏览该文件
file://这是绑定声音的代码
loop = new Sound();
loop.attachSound("music");//music是在库里做链接时的标识名
第一步:建立两个MC,一个起名叫da(大),一个起名叫xiao(小)。
在da(大)编辑环境中第一帧加
stop();//动画播放时让da(大)停在第一帧
第二帧加
_root.loop.start(0,200);//控制声音开始播放
_root.loop.setVolume(0);//设置声音音量为0
第三帧加<
if (i>=100) { file://设置判断条件,当i>=100时,执行括号中的语句
_root.gotoAndStop("on");//主时间轴跳转影帧
}
i = i+10;
_root.loop.setVolume(i);//设置声音音量为i
第十五帧加
gotoAndPlay(3);//返回第三帧,反复执行
第二步:在xiao(小)编辑环境中
第一帧加
stop();//动画播放时让da(大)停在第一帧
第二帧加
if (i>0) {
i = i-10;
_root.loop.setVolume(i);
} else {
_root.loop.stop();//如果i<=0,让声音停止
_root.gotoAndStop("off");//主时间轴影帧跳转
}
第十帧加
gotoAndPlay(2);//返回第二帧,反复执行
第三步:在开始按钮上加命令
on (release) {
tellTarget ("_root.da") {//指向_root.da
gotoAndPlay(2);//播放
}
}
第四步:在停止按钮上加命令
on (release) {
tellTarget (_root.xiao) {
gotoAndPlay(2);
}
}
到这应该做完了,至于一些细节方面,你参考源码吧。。。
音乐暂停实例
运用FLASH5提供的普通的关闭音乐功能,很难实现点击一个按钮就能随意控制音乐的效果,那么,这里到底有什么奥妙呢?其实方法很简单。将两个同样的按钮放置在不同的影帧里,然后利用按钮的Action来切换这两个影帧。用绑定库里的声音的方法来控制声音。
先看看效果吧:
点击浏览该文件
ss=new Sound(); //这是绑定声音的代码
ss.attachSound("sound");
ss.start();
在停止按钮上加命令:
on (release) {
gotoAndStop("Off"); //切换影帧
ss.stop();
_root.a=ss.position;
}
在开始按钮上加命令:
on (release) {
gotoAndStop("On"); //切换影帧
ss.start(_root.a/1000); //将毫秒数换成秒数
}
主要的技术在这方面,别的旁枝末节我就不说了。
旋 转 按 钮 控 制 音 乐
旋转按钮控制音乐音量大小,刚看到这个题目时,一时不知如何实现。试着先做一做。到最后时灵光一闪,才完成了。通过这个实例,你能学会的技术包括:绑定库里的声音并控制它,鼠标拖动并限制它的拖动范围,如何通过获得一个MC的坐标来控制另一个MC的播放,跟我来吧!先看看效果:
点击浏览该文件
请参照图(1)来看下面的步骤:

第一步:先来看看主时间轴,第一层放的是旋转MC(图中的B),实例名xuanzhuan_mc;第二层放的是按钮的基本形状和一个动态文本框(图中的C),变量为aa;第三层放的是滑块MC(图中的A),实例名huadong_mc;第四层放的是AS,控制声音绑定库里的声音文件。
第二步:先来绑定库里的声音文件。打开库面板,找到你要用的声音文件,点右键选择Linkage,在第一项里打勾,然后在上面的ID标识框里写上标识符sound。再来看第四层里的AS:
stop();//让动画在这帧停止
ss = new Sound();//创建一个新的声音
ss.attachSound("sound");//绑定库里的声音(刚才定义的那个),标识一定要相同。
ss.start(0,200);声音开始播放,循环200次。
第三步:来做旋转MC,在第1帧,将旋钮的角度调整到100的位置,在第100帧,将旋钮的角度调整到0的位置,在第一帧设置移动渐变动画,这时出现一个问题,它不是顺时针转,而是逆时针,这样就在第50帧加了一个关键帧,转到50的位置,这样它就走捷径了,成了顺时针转,目的达到。最后在第一帧加上stop();命令。
第四步:来做滑块MC,它是一个内嵌隐形按钮的MC,它的里面只有这个按钮,没有别的,在按钮上加上下面的AS代码:
on (press) {
startDrag("", false, left, top, right, bottom);
//当按下鼠标时,开始拖动,限制可拖动的区域
dragging = true;//设置变量为真
}
on (release, releaseOutside) {
stopDrag();//当释放或在按钮外释放时,停止拖动。
dragging = false; 设置变量为假
}
第五步:在滑动MC上加下面的代码:
// 这是设置huadong_mc(含按钮)的坐标位置。限制huadong_mc只能在水平方向移动。只能移100。从_x移到_x+100。
onClipEvent (load) {
top = _y;
left = _x;
right = _x+100;
bottom = _y;
}
// 当dragging变量为真时,得到huadong_mc的坐标,去掉小数(重要)
onClipEvent (enterFrame) {
if (dragging == true) {
n = getProperty("_root.huadong_mc",_x);
n = Math.round(n);//四舍五入
// 求出a的值,范围在0~100,因为最大为341,最小为241。
a = n-241;
_root.aa = a; // 设aa的值。
_root.xuanzhuan_mc.gotoAndStop(_root.aa); // 控制旋转MC,停止在表达式aa的值。
// 下面这句是设声音的大小,当x=left时,最大(100);当x=right时,最小(0)。
_root.ss.setVolume(100-(_x-left));
}
}
第六步:到这里,已经完成了。总结一下:1、为什么MC的名称要起名为huadong_mc呢?因为如果你加上了特殊的后缀_mc,在写代码时,写到_mc后面再写点时,就会出现代码提示,很方便。(没有后缀不会出现。)2、图中的C,那个动态文本框只是为测试,你可以把它删掉。3、onClipEvent (load)是电影剪辑实例在时间轴中出现时发生;onClipEvent (enterFrame)是指在播放电影剪辑实例中任一帧时发生,由于只有一帧,所以播放头反复进入此帧,使语句得到执行。4、隐形按钮的制作很有讲究,文章开头我提到的灵光一闪就是这个了,开始时我做了个圆形的按钮,比较大。后来又改成了图中的A的矩形,比较好控制。因为当旋转MC播放时,你始终处于隐形按钮的感应范围,所以有种控制旋钮的错觉,其实你水平拖动也能控制声音的啦!
音乐暂停最简码
通过大闪的指点我又做出了比较简洁的音乐暂停代码拿来和你共享:
ss=new Sound();
ss.attachSound("sound");
ss.start();
ss.onSoundComplete = function() {
ss.start();
};//以上是闪吧的版主教我的
场景中只有一个按钮,按钮上加代码:
on (press) {
a=a+1;
if (a%2==1) {//判断奇偶数,奇数时停,偶数时开
ss.stop();
_root.b=int(ss.position/1000);
_root.t="你暂停在第"+_root.b+"秒";
_root.kg="音乐停";
} else {
ss.start(_root.b);
_root.kg="音乐开";
}
}//以上是皮皮狼教我的
再在场景中放两个动态文本框,起好变量名就完成了。
效果在这:
点击浏览该文件
这个是最简码。。。
在补充一个更简单的:)
1。导入声音,新建一个MC,把声音拖入至MC中。
2。把MC拖入场景,命名为mp3
3。拖2个按纽,一个PLAY 一个STOP
PLAY的按纽上写:
on (release) {
_root.mp3.play();
}
stop的按纽上写:
on (release) {
_root.mp3.stop();
}
就OK了 最最简单的控制声音暂停与播放
[全屏欣赏]