| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
随机音乐代码
添加音乐类
Sogua免费提供音乐
天籁村音乐网站长
从音乐的发展规律
运营商下一步需要
按钮的小技巧
简介动画制作过程
关于背景音乐循环
Flash实用技巧之音

音乐按钮系列教程           

音乐按钮系列教程

作者:佚名 来源:不详 更新:2007-1-13 20:48:41 错误报告 我要投稿
     淡入淡出按钮
     运用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了   最最简单的控制声音暂停与播放
     点击开新窗口欣赏该FLASH动画![全屏欣赏]
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。