flash制作音量控制滑块Word格式.docx

上传人:b****5 文档编号:20501623 上传时间:2023-01-23 格式:DOCX 页数:16 大小:174.55KB
下载 相关 举报
flash制作音量控制滑块Word格式.docx_第1页
第1页 / 共16页
flash制作音量控制滑块Word格式.docx_第2页
第2页 / 共16页
flash制作音量控制滑块Word格式.docx_第3页
第3页 / 共16页
flash制作音量控制滑块Word格式.docx_第4页
第4页 / 共16页
flash制作音量控制滑块Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

flash制作音量控制滑块Word格式.docx

《flash制作音量控制滑块Word格式.docx》由会员分享,可在线阅读,更多相关《flash制作音量控制滑块Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

flash制作音量控制滑块Word格式.docx

//通过当前按钮的坐标来控制b影片剪辑的伸长量。

声音ActionScript的编写和控制

来源:

linux宝库作者:

linux宝库发布时间:

2007-09-30

  前言:

一个好的flash作品,缺少了声音,就如同人不会讲话相同。

而flash中对声音的支持也很不错,除了能够使用时间轴放置声音文档之外,我们还能够使用AS来更加准确的控制声音!

  一、FLASH中如何创建声音控件

  假如想控制动画中的声音,我们能够使用flash中的sound对象,通过sound命令创建一个新的sound对象。

之后再用attaceSound命令连接到库里的声音,就能够用来控制动画中的声音了。

  常用命令讲解:

  newSound()此命令用来创建一个新的sound对象,有了sound对象我们才能用AS来控制声音。

  attachSound("

库中的声音"

  此命令能够使我们创建的声音对象连接到库里的声音,以便进行控制。

  start([从第几秒开始播放,循环次数])

  此命令能够是声音开始播放,里面的两个参数是可选的。

  stop()

  停止声音的播放。

  setVolume(音量级别)此命令能够控制声音的音量高低,音量级别只能是从0-100之间的数字。

  呵呵,罗嗦了半天,现在咱们也应该用AS先做一个简单的小例子了。

  二、创建一个简单的声音播放动画,能够实现简单的开始和停止播放声音。

  操作步骤:

  1、新建一个flash文档,按Ctrl+R(文档\导入)导入一个声音文档,声音文档能够是MP3或WAV格式的。

声音文档导入之后,在舞台上是看不见的,必须打开库才能看到我们导入的声音。

如图:

  

  2、选中库中的声音文档,单击鼠标右键,在弹出的菜单中选择“链接...”将会弹出一个链接的对话框,请勾选“为动作脚本导出”和“在第一桢导出”选项,并输入一个标识符:

mysound

  (名字可任意写),单击确定。

如下图:

  3、回到主舞台,选中时间轴的第一桢,按F9打开动作面板。

现在我们要创建一个新的声音对象,并且连接到库里的声音。

用来控制声音。

输入以下脚本:

  music=newsound();

//创建一个名字叫music的声音对象。

  music.attachSound("

mysound"

//将这个声音对象和库里的标识符为“mysound”的声音连接。

  完成脚本如下图:

  4、现在需要在舞台上放置两个按钮分别控制声音的播放和停止。

选择“窗口”--“公用库”--“按钮”,打开flash为我们配置的公用按钮元件库,再将CircleButtons中的Play按钮和Stop按钮拖放到舞台上。

  5、此时,舞台上将有播放和停止两个按钮,选中Play按钮,打开动作面板,输入以下脚本:

  on(release){

  music.start();

  }//播放声音

  选中Stop按钮,输入以下脚本:

  music.stop();

  }//停止播放声音

  6、OK,一个简单的控制声音播放和停止的例子就完成了,快按Ctrl+回车来测试吧。

  三、创建一个稍微复杂的例子,用来滑动按钮来控制声音的音量。

  1、新建一个flash文档,并按Ctrl+R导入一个声音文档。

  2、参照上个例子,打开库,并把导入的声音文档配置一个链界标识符。

这里配置标识符为“mysound”。

  3、选中舞台时间轴第一桢,打开动作面板,创建一个新的声音对象,连接库中声音,并播放这个声音。

输入脚本如下:

  music.start(1,10);

//播放声音,从第一秒开始播放,并循环10次

  4、现在需要一个按钮做为滑动按钮,用来控制声音的音量!

按钮能够自己制作或使用公用库中的按钮,此例中我使用公用库中的按钮。

请在舞台适当位置放置一个按钮实例。

  5、选中按钮,打开动作面板输入以下脚本:

  on(press){

  this.startDrag(false,left,top,right,bottom);

//开始拖动这个按钮,并且要规定他的拖动范围,分别由四个变量控制,4个变量的初始值稍后配置。

  drag=true;

//用一个变量来判断这个按钮是否被拖动了。

假如他被拖动了,变量值为true(真)

  }

  on(release,releaseOutside){

  this.stopDrag();

//当松开按钮或在按钮外部松开,就停止拖动。

并且下面的drag变量为假,表示按钮没有被拖动。

  drag=false;

  完整脚本如图:

  6、再次选中这个按钮,并按F8键将他转换成一个影片剪辑!

起名为:

控制音量。

也就是“控制音量”这个影片剪辑里面包含了刚才的按钮。

  7、选中舞台上这个控制音量影片剪辑的实例,打开动作面板,现在要配置拖动范围的4个初始值和配置音量大小控制。

请输入以下脚本:

  onClipEvent(load){//当这个flash动画一开始,就配置下面4个变量的初始值。

为了使按钮只能上下拖动,所以,拖动范围的左、右都固定!

只能让按钮在上下100象素以内拖动。

  top=_y;

  left=_x;

  right=_x;

  bottom=_y+100;

  onClipEvent(enterFrame){

  if(drag==true){//假如按钮被拖动了,就开始执行下面的配置音量的算法,用来控制音量。

  _root.music.setVolume(100-(_y-top));

//配置音量大小,比较难理解的是里面的算法:

100-(_y-top),通过代入数字来帮助我们理解,假如_y的值是100,我们的top值也是固定的为100。

当拖动按钮往下时,_y值就会变大,比如变为130,那么_y-top就等于30了,在用100-30就等于70,这个70就是音量的级别了。

伴随着按钮越往下拖,音量级就会变的越小,那么也就实现音量的控制了。

  完整的脚本如下图:

  8、现在就来测试您的成果吧。

波形声音的相关知识2

[2006-6-2917:

35:

00|By:

铭秋]

二、“事件”声音的尴尬

我们知道,Flash可以用“事件”方式和“数据流”方式调用声音。

这两种方法各有优缺点,下面将结合实例首先对“事件”方式进行介绍。

1.播放声音

“事件”方式将声音一次性载入内存进行播放,而且必须等待载入完毕才开始播放。

“事件”方式会将声音和一个事件的发生过程同步起来。

事件声音在它的起始关键帧开始显示时播放,并独立于时间轴播放完整个声音,即使影片停止也继续播放。

下面来看一个例子。

①新建一个Flash影片,导入一段音乐。

如图5-2所示

②新建一个按钮元件,绘制出一个矩形按钮,在"

指针经过"

帧设置声音,"

同步"

选项设为"

事件"

如图5-3所示

③将按钮放置到舞台上,将鼠标移动到按钮上,每移动一次,设置的声音就完整地播放一次,不管前一个声音是否停止。

于是,当快速多次将鼠标置于此按钮上方时,所有的声音会混合在一起,感觉非常杂乱。

笔者将这种现象称为"

重音"

现象。

怎样解决这个问题呢?

方法是将"

开始"

"

选项也是使用"

方式调用声音,只是如果这个声音正在播放,就不会重新播放新的声音。

若将这个按钮中声音设置为"

,则不论移动鼠标多少次至按钮上,只要声音没有停下来,就只会播放一次。

如图5-4所示。

2.停止声音

在上例中,声音只有一帧,也同样会播放完,这就是事件声音的特点--与时间轴不同步。

如果想停止这个声音,该怎么办呢?

我们仍旧使用此例讲解。

在按钮元件的"

按下"

帧插入关键帧,仍然选择此声音,将"

选项改为"

停止"

即可。

当鼠标移动到按钮上时,会播放声音,单击按钮时,停止刚才播放的声音。

如图5-5所示。

需要强调的是,声音不一定必须设置在同一个元件当中。

如果在主时间轴中有一个事件声音正在播放,在按钮中设置让此声音停止的同步选项也是可以的。

这种方法只能停止指定的声音,如果要停止所有的声音,可以使用stopAllSounds()函数。

例如,将下面的代码写在按钮上,按下按钮将停止所有的声音。

stopAllSounds();

虽然使用"

方式播放声音非常简单,只需要在关键帧上设置就可以了,但却不能让我们很好地控制。

它和时间轴不同步,不能随意停止,如果设置不好还会出现重音现象。

因此,笔者一般将其应用在较短的音效上,对于较长的音乐或解说,笔者一般使用"

数据流"

方式。

三、做一个声音MC

MC是"

影片剪辑"

的缩写,"

声音MC"

就是仅包含声音的影片剪辑。

在这个影片剪辑中,我们采用"

方式播放声音。

方式和时间轴同步,它将声音信息按照帧分成许多块,如果动画的速度过快,有些帧的声音块不能播放,它就会跳过这些块中的声音。

方式便于制作和动画演示同步的声音效果。

例如,使用Flash制作MV,为了让歌词和歌曲同步,就必须使用"

下面结合一个例子来讲解"

的制作。

舞台中有"

上一页"

、"

下一页"

和"

开始解说"

三个按钮,要求单击"

后播放解说声音,单击"

或"

按钮跳到相应的页并播放跳转到的页中的解说声音。

此例经常应用于幻灯片中,在每页中有不同的解说词对所展示的内容进行解释。

每页中的解说都是独立的。

如果使用事件声音制作,则在上一页和下一页中都要设置停止这一页解说的关键帧,停止的同时还要开始本页解说的播放,相当繁琐。

如果使用"

,则很容易解决。

①新建一个影片剪辑,在此剪辑的第一帧中输入stop()函数,在第二帧插入关键帧,选择已导入的需要播放的声音文件,设置"

方式为"

方式,并延长此帧一直到波形显示完毕。

数据流方式的声音与时间轴同步,如果这里的帧不够长,那么声音就只会播放显示的部分。

在最后一帧插入关键帧,并输入stop()函数。

②由于解说词是在单击按钮后才开始播放的,而且播放后停止,因此在"

的第一帧和最后一帧都要设置停止函数。

如图5-6所示。

②将声音MC放置在舞台上,将其实例命名为"

sound_mc"

如图5-7所示。

③在舞台上放置三个按钮,分别为"

播放声音"

,"

在"

按钮上写入如下脚本:

sound_mc.gotoAndPlay

(2);

按钮的脚本:

prevFrame();

按钮的脚本

nextFrame();

④单击"

按钮,sound_mc的内部时间轴开始播放,声音也随之播放。

⑤单击"

按钮,由于页面中没有"

了,正在播放的声音会立即停止。

⑥由于sound_mc内部时间轴的最后一帧有stop()命令,所以此解说播放一遍后会自动停止。

⑦要sound_mc自动播放,删除sound_mc内部时间轴第一帧中的stop()命令即可。

⑧如果需要一个"

停止解说"

按钮,只需要在按钮上加入如下代码:

sound_mc.gotoAndStop

(1);

对声音的控制相当灵活,通过对其时间轴的控制,可以随时停止或播放声音。

还可以在一个"

中放置多个声音,通过帧标签控制其内部时间轴的跳转,以实现选择曲目的功能。

笔者经常使用"

制作大段的解说词和背景音乐。

当然,"

方式也有缺点,在使用相同的压缩率的情况下,数据流方式明显比事件方式的声音质量差,这是由于"

方式将声音文件分割成小块造成的。

笔者曾试图通过调整压缩率减小声音质量造成的影响,但收效不大。

四、使用声音对象

除了使用"

方式和"

方式调用声音之外,还可以使用声音对象。

声音对象不像前面两者那样要受时间轴的限制,可以实现更加灵活的声音控制,如:

使用脚本随时停止声音,设置声音从中间开始播放,得到声音的长度,实时调整声音大小,设置声音平衡等等,甚至可以直接控制硬盘中的mp3文件!

下面将结合实例讲解声音对象在课件中的应用。

1.链接库中的声音

①一个Flash影片,导入一个声音文件。

在库中使用右键单击这个声音文件,在弹出的快捷菜单中选择"

链接"

命令,在随后弹出的"

链接属性"

对话框中选择"

为动作脚本导出"

在第一帧导出"

,将"

标识符"

设为"

testSound"

如图5-8所示。

②影片的第一帧写入如下脚本:

//建立一个名为test_sound的声音对象

test_sound=newSound();

//把库中标识符为"

的声音链接到test_sound声音对象

test_sound.attachSound("

③接着,就可以直接对这个声音对象操作了。

例如,播放这个声音的脚本是:

test_sound.start();

④如果希望从这个声音的第1.4秒的地方开始播放,则脚本如下:

test_sound.start(1.4);

⑤如果希望从头播放并循环100遍,则脚本如下:

test_sound.start(0,100);

⑥停止这个声音的脚本就更简单:

test_sound.stop();

⑦设置当前音量为50%:

test_sound.setVolume(50);

⑧仅使用左声道(扬声器):

test_sound.setPan(-100);

仅使用右声道(扬声器):

test_sound.setPan(100);

⑨得到音乐已经播放的时间(毫秒)

currentPosition=test_sound.position;

得到音乐的总长度(毫秒)

soundLength=test_sound.duration;

2.载入硬盘中的声音文件

从FlashMX开始,Flash能够直接从硬盘中载入MP3文件了!

这意味着我们只需要改变外部的MP3文件就可以改变Flash中的音乐了,也不用将巨大的歌曲文件导入到Flash内部了。

我们甚至可以用这个功能制作一个MP3播放器!

更重要的是,它用起来非常简单!

新建一个Flash影片,将下面的代码写入第一帧。

//首先当然要建立一个声音对象

mp3_sound=newSound();

//载入和Flash文件相同目录下的mylove.mp3文件

mp3_sound.loadSound("

mylove.mp3"

false);

loadSound函数有两个参数,第一个参数描述要载入的MP3文件的位置(注意,必须是MP3文件),可以使用相对路径。

例如,如果这个MP3文件在子目录music中,则上句写成:

music/mylove.mp3"

第二个参数决定是以"

方式载入还是以"

方式载入。

如果为ture,则使用数据流方式载入,只要载入的音乐数据足够启动解码器,声音就会自动播放;

如果为false,则是事件方式,只有在声音文件全部载入后才能够使用mp3_sound.start()进行播放。

笔者一般使用事件方式载入声音,这种方式控制起来比较容易。

判断外部MP3文件是否已经完全载入的语句如下:

mp3_sound.onLoad=function(){

soundLoaded="

ok"

;

当确定外部MP3文件已经完全载入后,就可以像链接库中的声音一样使用它了。

3.做一个音量滑块

音量滑块是课件中常用的功能。

下面将制作一个通用的音量滑块,不过如果要将它用在你的课件中,可还需要好好美化一下呀^_^

①首先制作一个按钮元件(或影片剪辑),拖动它的一个实例到舞台上,将实例命名为"

vol"

,在vol下方绘制一根高度100象素的竖线,在vol上方放置一个动态文本域,其关联变量为level。

如图5-9所示

②选中这三个对象(按钮、动态文本和直线),按F8键将它们转换成一个影片剪辑,命名为"

音量控制"

如图5-10所示。

为什么要转换成影片剪辑呢?

因为转换后,这个音量滑块就独立出来了,任何时候需要使用这个滑块的时候,将这个影片剪辑拷贝到需要使用的影片中就行了。

这也符合模块化的制作思想。

③接下来处理声音对象,在主时间轴的第一帧写入如下脚本:

mp3_sound=newSound();

true);

这里以数据流的方式载入mylove.mp3音乐文件,载入的音乐会自动播放。

④进入"

影片剪辑内部进行编辑。

单击"

音量剪辑"

内部时间轴的第一帧,输入以下脚本:

//限定"

能够被拖动的范围,为了避免level值出现小数,使用Math.ceil()函数将vol._y进一位

top=Math.ceil(vol._y);

left=vol._x;

right=vol._x;

bottom=top+100;

level=100;

//在vol按钮上按下鼠标时拖动

vol.onPress=function(){

startDrag("

false,left,top,right,bottom);

dragging=true;

};

//在vol按钮上释放鼠标时停止拖动

vol.onRelease=function(){

dragging=false;

//在外部释放鼠标也同样停止拖动

vol.onReleaseOutside=function(){

//下面的代码每秒执行12次

this.onEnterFrame=function(){

//如果当前正在拖动音量滑块则根据当前vol的位置确定level的值

if(dragging){

level=100-(vol._y-top);

}else{

//一旦停止拖动音量滑块就就检验level值是否超出限度,超出限度就设定level值为最大限度(或最小限度)

if(level>

100){

if(level<

0){

level=0;

//设定声音对象的音量值(由于声音对象是在主时间轴中定义的,所以要加上关键字_parent)

_parent.mp3_sound.setVolume(level);

⑤滑块完成,可以测试一下影片了。

本例中是使用数据流方式载入外部的MP3文件的,因此音乐会自动播放。

如果不希望这样,可以使用事件方式载入外部MP3文件,然后使用Sound.start()命令触发它。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1