配色: 字号:
用按钮控制声音的几种方法
2014-06-18 | 阅:  转:  |  分享 
  
Flash课件中声音控制的几种方法(文中的不少代码必须重新输入,否则有很多语法错误)



在中小学教师开发的课件中,用Flash制作的比例越来越大,而声音作为多媒体课件的重要组成部分,应用得合理与否直接影响到课件整体艺术力的表现。在八月份的第一期Flash课件制作培训时,我们讲了两种应用声音的控制方法,一种是导入时间轴,用play,stop等命令进行简单控制;另一种是利用组件工具来控制声音的播放。显然,这两种方法是简单的、易掌握的,但能实现的功能却有所局限。本文整理了Flash声音控制的另外两种方法,希望对课件制作爱好者有所帮助。

一、用Sound类的start方法

很多人在制作一个带配音的Flash

课件时,会设计了两个按钮,一个按钮控制音乐的播放,另一个按钮控制声音的停止。当单击按钮让音乐停止后,再次单击控制音乐播放的

按钮,音乐却从头开始播放了。这里可以用Sound类的start方法来控制音乐播放。

用Sound类的start

方法来播放音乐必须给出必要的参数,通过参数控制音乐从停止处开始播放。否则,音乐就是直接从头开始播放。用sound类的position属性和start方法结合在一起就可以解决这个问题。具体操作步骤是:



(1)将音乐导入到“库”中。右击“库”中的音乐对象,在弹出的快捷菜单中选择“链接”命令,打开“链接属性”对话框,勾选“为动作脚本导出”和“在第一帧导出”复选项,

设置标识符为“mySound”。

(2)在第1帧上添加如下脚本:

myMusic=newSound();//建立一个名为myMusic的声音对象,

myMusic.attachSound("mySound");//将链接标识符为mySound的音乐捆绑到myMusic对象上。

(3)在播放音乐的按钮上添加如下脚本:

on(press){

vart=myMusic.position/1000;//计算声音当前播放的位置

myMusic.start(t);//从当前位置开始播放

position是Sound

类的一个属性,可以获得声音对象播放的当前位置。在制作Flash动画时,这个属性经常会被用到。比如制作MP3播放器,如果制作一个控制音乐播放进度的滑块,那么就可以用这个属性来实现相应的算法。

(注意:在操作时要注意字母的大小写)



二、利用影片剪辑来控制声音

(一)导入声音素材

点击【文件】|【导入】|【导入到库】菜单命令,在弹出的【导入到库】对话框中,找到你要导入的声音文件,选中后点击打开按钮,将声音导入到库。

(三)制作声音影片剪辑元件:

(1)点击【插入】|【新建元件】菜单命令,在弹出的新建元件对话中,名称输入“声音”、行为选【影片剪辑】,确定。

(2)选中“图层1”的第1帧,打开属性面板,在声音设置的对话框中,选择你导入的声音件,并在同步选项中选择数据流。

(3)把声音文件在时间轴上展开。

(4)回到场景,把“声音”影片剪辑元件提到舞台,此时声音影片剪辑元件在舞台只看到一个注册点,用黑箭头工具点击注册点,(选中声音元件)打开属性面板,在属性面板中输入实例名“yinyue”。

(四)制作声音控制元件

(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();。

(五)场景组装

(1)回到场景,从库里把“播放和暂停”元件提进舞台,放到适当的位置。选中“播放和暂停”元件,打开属性面板,在属性面板中输入实例名“yinyue”。

(2)在公用库中提入一个按钮用来控制“停止”,点击“停止”按钮,打开动作面板,添加命令:

on(release){

_root.yinyue.gotoAndStop(1);

_root.play.gotoAndStop(1);

}

(3)添加图层二,在“图层二”的第1帧输入命令:_root.yinyue.stop();

(六)测试影片并保存。

这部分内容可参考:http://www.ha.e21.cn/Article/ShowArticle.asp?ArticleID=3863





音乐的重复播放

1、首先,将音乐导入库。然后,在库中右击音乐文件——链接,勾选“为动作脚本导出”和“在第一帧导出”复选项,在设置标识符为“aaa”。

2、在时间AS层写下如下代码:

mymusic=newSound()

mymusic.attachSound("aaa")

mymusic.onSoundComplete=function(){

mymusic.start()}/声音播放完毕时自动调用的事件,

这样,当声音播放完毕后自动执行mymusic.start(),使声音不断播放。

如果声音播放时被代码停止(mymusic.stop()),声音是不会重复播放的。/

mymusic.play()//使声音在动画开始时播放

varsoundkey=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=newSound()

mymusic.attachSound("aaa")

mymusic.onSoundComplete=function(){

mymusic.start()}/声音播放完毕时自动调用的事件,

这样,当声音播放完毕后自动执行mymusic.start(),使声音不断播放。

如果声音播放时被代码停止(mymusic.stop()),声音是不会重复播放的。/

mymusic.play()//使声音在动画开始时播放

varsoundkey=1//定义变量soundkey,监视声音播放情况。

bofang_btn.onPress=function(){

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和tingzhi_btn。

3、在时间轴面板的AS层写下如下代码:

varmymusic=newSound();

mymusic.attachSound("aaa");

bofang_btn.onPress=function(){

vart=mymusic.position/1000;

mymusic.stop();

mymusic.start(t);

}

tingzhi_btn.onPress=function(){

mymusic.stop();

}

//至此完成,按ctrl+enter测试。

//代码第五行,加入了mymusic.stop();如果不加这句,那么连续点击播放按钮,音乐的音量会不断增大。

对于下面这段代码

bofang_btn.onPress=function(){

vart=mymusic.position/1000;

mymusic.stop();

mymusic.start(t);

}

我的理解是,当点击bofang_btn按钮时,开始获取音乐播放的位置,并赋值给变量t,然后停止前一个声音,从t处开始播放。





播放、暂停、停止三个按钮控制音乐播放

1、首先,将音乐导入库。然后,在库中右击音乐文件——链接,勾选“为动作脚本导出”和“在第一帧导出”复选项,在设置标识符为“aaa”。

2、在主场景中拖入三个按钮,将三个按钮分别命名为play_btn、pause_btn、stop_btn。

3、在时间轴面板插入图层命名为“AS”层,在“AS”层写下如下代码:

varmymusic=newSound;

mymusic.attachSound("aaa");

play_btn.onPress=function(){

mymusic.stop();

mymusic.start(t);

}

pause_btn.onPress=function(){

mymusic.stop();

t=mymusic.position/1000;

}

stop_btn.onPress=function(){

mymusic.stop();

t=0;

}

//至此完成,按ctrl+enter测试。







播放、暂停、停止三个按钮控制音乐播放(播放、暂停按钮合二为一)

1、首先,将音乐导入库。然后,在库中右击音乐文件——链接,勾选“为动作脚本导出”和“在第一帧导出”复选项,在设置标识符为“moonlightshadow.mp3”。

2、从公用库中拖入两个个按钮到主场景中,将两个按钮分别命名为play_btn、stop_btn,锁定该图层。

3、新建一个图层,从公用库中拖入一个按钮,将这个按钮命名为pause_btn,并把它拖放到play_btn的位置。

3、在时间轴面板插入图层命名为“AS”层,在“AS”层写下如下代码:

varmymusic=newSound();//创建一个新的声音对象mymusic

mymusic.attachSound("moonlightshadow.mp3");//将声音对象myumusic与库中的音乐moonlightshadow.mp3进行链接

pause_btn._visible=false;//隐藏暂停按钮

play_btn.onPress=function(){//当点击play_btn按钮时,执行大括号内的命令

mymusic.start(t);//从t处开始播放

pause_btn._visible=true;//显示暂停按钮

play_btn._visible=false;//隐藏播放按钮

}

pause_btn.onPress=function(){

t=mymusic.position/1000;//获取音乐播放的位置并赋值给变量t

mymusic.stop();//停止播放

pause_btn._visible=false;

play_btn._visible=true;

}

stop_btn.onPress=function(){

mymusic.stop();

t=0;//清除变量

play_btn._visible=true;

pause_btn._visible=false;

}

//至此完成,按ctrl+enter测试。

//在上述代码后加入如下代码,实现当音乐播放完毕后,回到初始状态。

mymusic.onSoundComplete=function(){//音乐播放完毕之后执行大括号内的命令

t=0;

play_btn._visible=true;

pause_btn._visible=false;

}





把播放和暂停真正做到一个按钮上

从公用库拖入两个按钮到舞台,分别命名为pla_pau_btn、stop_btn。在第一帧写下如下代码

mymusic=newSound();

mymusic.attachSound("a");

i=1;

pla_pau_btn.onPress=function(){

if(i==1){//如果变量i等于1执行下面的动作

mymusic.start(t);//音乐播放

i=0;//赋0给变量i

}else{//否则执行下面的动作

t=mymusic.position/1000;

mymusic.stop();//音乐停止

i=1;//赋予1给变量i

}

}

stop_btn.onPress=function(){

mymusic.stop();

t=0;

i=1;

}









用按钮控制声音的播放

基本步骤:

第一步:制作三个按钮元件分别命名为:播放、停止和暂停。

第二步:导入音乐到库中,将其链接标识符设定一个名称,格式为“音乐的名称.mp3”。

第三步:将按钮放入场景中。在时间轴第一帧加入动作:

mysound=newSound();

mysound.attachSound(“音乐的名称.mp3”);

mysound.stop();

play_status=false;//记录歌曲播放的状态。

begin=0;//用以记录音乐播放的位置。

第四步:在播放按钮上加入动作:

on(release){

if(!play_status){

_root.mysound.start(_root.begin);

_root.play_status=true;

}

}

第五步:停止按钮上加动作:

on(release){

_root.mysound.stop();

_root.play_status=false;

_root.begin=0;

}

第六步:暂停按钮上加动作:

on(release){

_root.mysound.stop();

_root.play_status=false;

_root.begin=_root.mysound.position/1000;

}































献花(0)
+1
(本文系愚_石首藏)