免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享

第二十五课:声音的使用(Part2)

本文来自:★flash之路-flash技术交流★ 转帖请注明出处! 作者:网雨霏霏 您是第4181个浏览者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
flashroad友情提示:
“点评”不是“回帖”!
上一节我们讲解了如何在Flash中插入声音并播放它。本节我们接着讨论声音的使用。

一、使用导入到库中的声音制作

1、按照上节课的方法,将mp3音乐导入到库中后,我们如下操作
2、


注意:截图中的双击直接写文字功能是从flashCS4才引入的。如果你用的flash版本小于等于flashCS3,需要按照下面的方法操作

3、加入的代码如下:
本帖隐藏的内容需要回复才可以浏览

4、按Ctrl+Enter键测试影片即可听到声音。

代码讲解:
(1)var是专门用来定义变量的函数 在这里我们定义了一个名为mymusic的变量
后面的=并不是数学中用的“等于号”,它被称之为“赋值号”,它的作用是把=右边的赋值给左边
因此,第一行代码就解释为:“定义了一个名为mymusic的声音变量”

(2)attachSound是用来链接库中的声音文件的。【括号中双引号里面的就是连接的声音文件的标识符sgs)】
在这个函数与我们自定义的函数mymusic之间有个点,这个点的意思是说,点后面的属性是从属于点前面的元件的。
因此,第二行代码就解释为:“将我们定义好的mymusic声音变量链接到库中id(标识符)为sgs的声音文件”

(3)start开始播放这个声音 括号中有两个数值【留空的话就是简单的播放一遍这个音乐了】
前面的10代表从第10秒开始播放
后面的5表示重复播放5次

由此可见,使用代码的手段管理声音,是多么的简单、高效。推荐大家使用。
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

友情提示:单击下列任意一个表情,即可瞬间自动回复本帖!

好贴......
郁闷......
开心......
擦汗......
鄙视......
狂怒
谢谢
爱你呦
拜托了
嗯嗯
OMG
求关注
伤心......
无奈.....
无奈.....
无奈.....
无奈.....
无奈.....
哈哈哈
NO
OK
what
我来了

最近访问本帖者列表:

打赏

取消

感谢您的支持,我会继续努力的!

扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 爱秀代码,分享从这里开始,精彩与您同在

点评
B Color Smilies

您还可以输入:个字符
X

X

二、接上例,控制声音的音量大小
只要在二、三行代码之间加上下面的代码
mymusic.setVolume(60)
就可以了。60就是声音的百分比大小【音量是源文件的60%】

三、如果我们要自由控制声音的播放与停止,又当如何?
答案是:在舞台中增加两个按钮,单击其中一个按钮时播放音乐,单击另一个时停止播放音乐。现在我们新建一个文档操作:
1、将音乐文件导入到库中,设置其id(标识符)为sgs
2、制作“播放”和“停止”两个按钮
【可以从公用库内直接调用合适的,然后修改一下即可】
3、开始写代码
(1)在时间轴的第一帧上按F9键加如下代码:
var mymusic = new Sound();
mymusic.attachSound("sgs");

(2)用选择工具单击舞台上的“播放”按钮,加代码【一定要加在按钮上,不要加在帧上】:


on (press) {
mymusic.start();
}


(2)同理,在“停止”按钮上加AS:
on (press) {
mymusic.stop();
}

4、按Ctrl+Enter键测试影片。
测试时发现,我们需要的效果已经实现。但是,当我们连续多次单击“播放”按钮时,会发现音乐又叠加在一起播放。因此,需要在播放按钮上再加一行代码mymusic.stop()变成下面的样子就可以啦:
on (press) {
mymusic.stop()
mymusic.start();
}



代码讲解:
①这里用到了代码on。在按钮上加代码时必须使用on函数。on之后括号中必须带上参数。参数共有8个【详细的介绍看本节末尾处的附录】,我们使用的是press。它的意思是当用鼠标单击这个按钮时,执行大括号中的命令。

②mymusic就是我们自定义的声音函数。它后面的点就是设置一下这个声音的属性
start()播放这段声音【括号里可以加参数,前面有讲过,大家可以看看】
stop()停止这段声音



5、纳尼?阁下认为播放按钮需要修正一下下?
或许如下修改可以满足你:
①播放按钮修改为:
on (press) {
if(kg!=1){
mymusic.start();
kg=1
}
}

②停止按钮修改为:
on (press) {
mymusic.stop();
kg=0
}

是不是很奇妙?这里利用了AS2的一个特性--变量可以不经定义直接使用
我设置了一个名为kg的变量,因为根本不存在这个变量,所以if(kg!=1)的返回值一定是真,那么第一次单击播放按钮的时候肯定会播放音乐。同时让kg=1,这样kg变量就存在了,而且被赋值为1.当我们第二次单击播放按钮的时候,if(kg!=1)的返回值就变成了假,故而不会重复播放音乐。
最后,当观众单击停止按钮的时候,由于在停止按钮上多加一行代码kg=0
所以,当观众继续单击开始按钮的时候,if(kg!=1)的返回值就是真,就会开始播放音乐了!

该技巧在AS3内不再适用。因为AS3的变量必须先定义,才可以使用。


至此,效果已近完美。但是为了实现更逼真的效果,我们有必要在播放界面上加上跳动的长条。然后,为了实现播放多首音乐,我们还需要再加上几个按钮控制。还有,播放时的音量如果可以控制的话,岂不更完美?这些效果的实现我们会在下一讲详细讨论。
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

获得 大穷神卡 一张

卡片说明:网雨霏霏不小心破坏了公物,被警察叔叔扣掉4金钱

卡片效果:-4

点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

附录:(摘自Flash8帮助文档)

press 当鼠标指针滑到按钮上时按下鼠标按钮
release 当鼠标指针滑到按钮上时释放鼠标按钮
rollOut 鼠标指针滑出按钮区域
rollOver 鼠标指针滑到按钮上
dragOut 当鼠标指针滑到按钮上时按下鼠标按钮,然后滑出此按钮区域
dragOver 当鼠标指针滑到按钮上时按下鼠标按钮,然后滑出该按钮区域,接着滑回到该按钮上。
releaseOutside 当鼠标指针滑到按钮上时按下鼠标按钮,然后在释放鼠标按钮前滑出此按钮区域。
keyPress "< key > " 按下指定的键盘键。对于该参数的 key 部分,请指定一个键常数,如"动作面板"中的代码提示所示。可以使用这个参数来截取某个按键,也就是说,覆盖所指定键的任何内置行为。该按钮可以在您的应用程序中的任何地方,可以在舞台上或不在舞台上。此技术的一个局限是不能在运行时应用on()处理函数;您必须在创作时应用它。请确保选择"控制">"禁用键盘快捷键",否则在使用"控制">"测试影片"测试应用程序时某些具有内置行为的键不会被覆盖。

press 和 dragOut 事件始终在 releaseOutside 事件之前发生。
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

 

B Color Image Link Quote Code Smilies
高级模式 | 发新话题

您需要登录后才可以回帖 登录|立即注册

快速
返回顶部
返回首页