Flash中的声音控制(as2.0)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Flash中的声音控制(as2.0)
前面讲过两种应用声音的控制方法,一种是导入时间轴,用play,stop等命令进行简单控制;另一种是利用组件工具来控制声音的播放。显然,这两种方法是简单的、易掌握的,但能实现的功能却有所局限。本文整理了Flash声音控制的另外两种方法。
一、用Sound 类的start 方法
很多人在制作一个带配音的Flash
课件时,会设计了两个按钮,一个按钮控制音乐的播放,另一个按钮控制声音的停止。当单击按钮让音乐停止后,再次单击控制音乐播放的
按钮,音乐却从头开始播放了。这里可以用Sound 类的start 方法来控制音乐播放。
用Sound 类的start
方法来播放音乐必须给出必要的参数,通过参数控制音乐从停止处开始播放。否则,音乐就是直接从头开始播放。用sound类的position属性和start方法结合在一起就可以解决这个问题。具体操作步骤是:
(1)将音乐导入到“库”中。右击“库”中的音乐对象,在弹出的快捷菜单中选择“链接”命令,打开“链接属性”对话框,勾选“为动作脚本导出”和“在第一帧导出”复选项,
设置标识符为“mySound”。
(2)在第1帧上添加如下脚本:
myMusic = new Sound();//建立一个名为myMusic的声音对象,
myMusic.attachSound("mySound"); //将链接标识符为mySound的音乐捆绑到myMusic对象上。
(3)在播放音乐的按钮上添加如下脚本:
on (press) {
var t=myMusic.position/1000; //计算声音当前播放的位置
myMusic.start(t); //从当前位置开始播放
position 是Sound
类的一个属性,可以获得声音对象播放的当前位置。在制作Flash动画时,这个属性经常会被用到。比如制作MP3播放器,如果制作一个控制音乐播放进度的滑块,那么就可以用这个属性来实现相应的算法。
(注意:在操作时要注意字母的大小写)
二、利用影片剪辑来控制声音
(一)导入声音素材
点击【文件】|【导入】|【导入到库】菜单命令,在弹出的【导入到库】对话框中,找到你要导入的声音文件,选中后点击打开按钮,将声音导入到库。
(三)制作声音影片剪辑元件:
(1)点击【插入】|【新建元件】菜单命令,在弹出的新建元件对话中,名称输入“声音”、行为选【影片剪辑】,确定。
(2)选中“图层1”的第1帧,打开属性面板,在声音设置的对话框中,选择你导入的声音件,并在同步选项中选择数据流,如图1所示。
图1
(3)把声音文件在时间轴上展开。
(4)回到场景,把“声音”影片剪辑元件提到舞台,此时声音影片剪辑元件在舞台只看到一个注册点,用黑箭头工具点击注册点,(选中声音元件)打开属性面板,在属性面板中输入实例名“yinyue”,如图2所示。
图2
(四)制作声音控制元件
(1)点击【插入】|【新建元件】菜单命令,在弹出的新建元件对话中,名称输入“播放和暂停”、行为选【影片剪辑】,确定。
(2)把“图层1”命名为“按钮”,在此图层的第1帧中,执行【窗口】|【其它面板】|【公共库】|【按钮】菜单命令。提进一个按钮,用来控制“播放”。
(3)给播放按钮添加命令:
on (release) {
gotoAndStop(3);
_root.yinyue.play();
}
(4)在按钮图层的第3帧中插入空白关键帧,在此空白关键帧中,执行【窗口】|【其它面板】|【公共库】|【按钮】菜单命令。提进一个按钮,用来控制“暂停”,并在第4帧中按F5插入普通帧。
(5)给暂停按钮添加命令:
on (release) {
gotoAndStop(1);
_root.yinyue.stop();
}
(5)添加图层二,命名为“AS”在“AS”图层的第2帧和第4帧分别输入命令:stop();此时的时间轴面板如图3所示:
图3
(五)场景组装
(1)回到场景,从库里把“播放和暂停”元件提进舞台,放到适当的位置。选中“播放和暂停”元件,打开属性面板,在属性面板中输入实例名“yinyue”,如图4所示。
图4
(2)在公用库中提入一个按钮用来控制“停止”,点击“停止”按钮,打开动作面板,添加命令:
on (release) {
_root.yinyue.gotoAndStop(1);
_root.play.gotoAndStop(1);
}
(3)添加图层二,在“图层二”的第1帧输入命令:_root.yinyue.stop();
(六)测试影片并保存。
这部分内容可参考:/Article/ShowArticle.asp?ArticleID=3863
音乐的重复播放
1、首先,将音乐导入库。然后,在库中右击音乐文件——链接,勾选“为动作脚本导出”和“在第一帧导出”复选项,在设置标识符为“aaa”。
2、在时间AS层写下如下代码:
mymusic= new Sound()
mymusic.attachSound("aaa")
mymusic.onSoundComplete = function() {
mymusic.start() } /*声音播放完毕时自动调用的事件,
这样,当声音播放完毕后自动执行mymusic.start(),使声音不断播放。
如果声音播放时被代码停止(mymusic.stop() ),声音是不会重复播放的。*/ mymusic.play() //使声音在动画开始时播放
var soundkey=1 //定义变量soundkey,监视声音播放情况。
3、在主场景中拖入一个按钮,在按钮上写下如下代码:
on(release){
soundkey=-soundkey//使变量值为原值相反数
if(soundkey==1){
mymusic.stop()
mymusic.start()
} /*如果soundkey值为正,则播放声音,mymusic.stop()使声音停止后
再播,以免声音产生叠加,影响效果*/
if(soundkey==-1){
mymusic.stop()
} //如果soundkey值为负,则声音停止
}
至此完成,按ctrl+enter测试。
音乐的重复播放
1、首先,将音乐导入库。然后,在库中右击音乐文件——链接,勾选“为动作脚本导出”和“在第一帧导出”复选项,在设置标识符为“aaa”。
2、在主场景中拖入一个按钮,将按钮命名为bofang_btn。
3、在时间AS层写下如下代码:
mymusic= new Sound()
mymusic.attachSound("aaa")
mymusic.onSoundComplete = function() {
mymusic.start() } /*声音播放完毕时自动调用的事件,
这样,当声音播放完毕后自动执行mymusic.start(),使声音不断播放。
如果声音播放时被代码停止(mymusic.stop() ),声音是不会重复播放的。*/ mymusic.play() //使声音在动画开始时播放