Flash中的声音控制(as2.0)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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() //使声音在动画开始时播放

相关文档
最新文档