APP下载

Action Script 2.0中声音对象在Flash网站中的应用

2010-03-22关天柱

黄河水利职业技术学院学报 2010年4期
关键词:音频体积设置

吴 丰,关天柱

(黄河水利职业技术学院,河南 开封 475004)

0 引言

随着网络的不断发展, 纯Flash 网站已经屡见不鲜,它以生动的动画和交互方式的操作,使众多访问者自然而然地融入到网站中。 Flash 网站的创意、设计和互交是影响网站成功与否的主要因素,而在这些因素中,声音的运用是必不可少的。Action Script脚本语言中的声音(Sound)对象可以解决声音在Flash 网站中的控制问题。 笔者主要对Flash 网站的整体规划及其在制作环节中的声间控制问题进行探讨。

1 Flash 网站的结构与内容规划

1.1 Flash 网站的结构层次

从本质上说,纯Flash 网站与普通HTML 网站结构基本相似,主要由预载、片头和主界面(包含导航和内容)组成。 Flash 片头与主场景的层次结构如图1 所示。

图1 Flash 片头与主场景的层次结构Fig.1 Layer structure of Flash film header and main scene

图1 中,主场景的最底层为_root 层,考虑到后期还要对载入的主场景进行切换,所以在_root 层创建一个空的MovieClip (影片剪辑), 并命名为mainholder。 当页面运行时,使用_root.moviecliphold er.loadMovie(“mainflash.swf”)语句,将主场景载入。主场景载入后,子内容需要使用嵌套的方式进行加载,即通过触发主场景中的链接或按钮事件,将子内容载入到主场景中,而不是直接载入到mainholder 中。其嵌套结构如图2 所示。

图2 载入子内容的嵌套结构Fig.2 Nested structure after loading sub-content

图2 中,在根目录下的movieclipHolder 中载入了Flash 主影片mainflash.swf,mainflash 中包含既定的背景、导航和两个影片剪辑。在mainflash.swf 中的item1 和item2 中再次载入相应的sub1.swf 和sub2.swf。 经过如此设计,Flash 网站已经被细分为多个部分,有效地减少了单个文件的体积,在一定程度上提高了网站访问的流畅度。

1.2 内容规划

Flash 网站的内容主要包含swf 文件、txt 文件、xml 文件、mp3 文件和flv 文件。 这些文件一般采用外部加载的方式载入数据,其目的是尽量减少文件体积,方便后期更新维护。

(1)swf 文件。 将多个外部内容制作成小的swf文件,并使用载入影片剪辑的方法加载,易于控制,但不易更新。(2)txt 文件。使用loadVars 来载入外部动态文本,易于更新,但对图像的定位较为复杂。(3)xml 文件。 能够方便地的与其他数据库通信,因此,网站的整个内容是用此格式载入。 (4)mp3 文件。 使用sound()内置类,以外部载入的方式进行加载。(5)flv 文件。 能够与Flash 无缝结合,并能实现流式播放。 目前,绝大部分网站视频均用此格式。

2 声音控制的方法

Flash 网站中声音是在外部加载后进行控制的,通过Flash 的脚本语言Action Script,可以实现多种控制声音的方式。 Action Scrip 类文档由属性、方法和事件处理函数组成,而其中的Sound 类可以控制影片中的声音。

2.1 声音的加载与循环播放

2.1.1 声音的加载

在Flash 网站中,对于体积较小的外部音频文件,可以先导入到Flash 内部,再将其拖放到时间轴或影片剪辑(MovieClip)的时间线中,实现播放音乐的控制效果。 对于体积较大的音频文件,使用导入的方法并不可取,可以使用Sound 对象的Load Sound()方法进行加载。在加载时,可以选择流式播放方式和下载播放方式。 使用流式播放方式时, 音频只要载入,便会自动播放;而使用下载播放方式时,需要先确认音频文件是否下载完成, 然后为其指定触发动作,才能开始播放。一般情况下,可通过onLoad 事件来判断音频是否下载完成了,具体实现代码为:

2.1.2 声音的循环播放

Flash 网站中经常会用到循环播放的背景音乐,这些背景音乐一般选用体积很小的音频片段。 在具体实现方面,主要使用Sound 对象中的start()方法,即start([secondOffset∶Number],[loops∶Number]):Void,它除了可以让声音从指定的位置播放外,还可以设置循环次数。 这时仅需将“this.start();”修改为“this.start(0,999);”即可。

2.2 声音开关的设计与实现

声音的开关在Flash 网站中十分必要。 先创建一个代表声音开与关的MovieClip,通过触发事件让其切换状态,以此来控制网站背景音乐的播放与停止。 其实现原理是,在控制开与关的MovieClip.on Release 段内设置一个开关“states=! states”,在每次单击MovieClip 按钮时,states 的值就会不断变化,从而达到在onLoad 事件中根据状态决定声音播放还是停止的目的。 其主要实现代码为:

2.3 音量和声道控制的设计与实现

网站中音量的大小和左、 右声道的平衡是通过Sound()类的设置平衡度(setPan)和设置音量(set Volume)方法来进行控制的。 具体的设计思路是:先将音频导入到库中,再用attachSound()将其载入到场景中,最后用setPan()和setVolume()方法实现对其控制。 图3 为声音控制界面。 通过上下拖放图3中的小球元件,可以控制音量大小,左右拖动可控制左右声道的平衡。 其具体的实现方法为:

图3 声音控制Fig.3 Voice control

3 包含声音文件的发布

在制作包含声音文件的Flash 影片时,由于后期要将影片发布到网站中, 所以要着重考虑声音文件的音质和压缩比等问题。

3.1 压缩声音的相关设置

对于导入到库中的声音文件, 可以单独为其设置压缩类别和采样率,以减少声音文件的体积(如图4 所示)。 Flash 提供的压缩类型有ADPCM(自适应差分脉冲编码调制)压缩类型、MP3 压缩类型、原始压缩类型和语音压缩类型4 种。 ADPCM 压缩类型常用于较短的声音片段, 例如单击按钮时发出的声音。 MP3 压缩类型用于较长的音频流。 原始压缩类型对输出的声音不进行压缩。 语音类型是使用一个适合于语音的压缩方式导出声音的。

图4 声音属性Fig.4 Voice property

另外,在Flash 影片发布时,同样涉及声音的相关设置。 需要特别注意的是,如果勾选“覆盖声音设置”复选框,则表示全局声音压缩设置将覆盖所有单独为声音文件设置的压缩属性。 此选项在需要创建不同保真音频文件时非常有用。

3.2 减小包含声音文件体积的注意事项

除了上述对声音进行压缩的方法以外, 减小包含声音文件体积的有效方法还有:(1)通过设置切入点和切出点的位置, 避免静音区域在Flash 中的出现。 (2)应尽量采用短声声音文件作为背景音乐。(3)避免将音频流设置为循环播放。 (4)对于嵌入视频剪辑中的声音,是采用“发布设置”对话框中的全局压缩设置导出的,所以在发布时要特别注意。 (5)导出QuickTime 文件时,可以使用任意数量的声音和声道,而不必担心文件的大小。 这是因为,当声音导出为QuickTime 文件时, 将被混合在一个单音轨中,所以不会影响最终文件的大小。

4 结语

在ActionScript 中处理声音时,主要通过Sound类加载声音文件,并获取对音频信息的访问控制。该方法在实际Flash 网站开发中具有良好的实用性。 本文从Flash 网站的层次结构出发,探讨了应用Sound 类解决Flash 网站中声音的控制问题,希望对顺利构建Flash 网站提供一定的参考。

[1] 郭玲玲, 刘建超. 在Flash 中用Sound 对象实现对声音的控制[J]. 软件导刊,2009,8(5)∶29-30.

[2] 沈国荣, 倪应华. Flash 声音对象互交控制的方法比较与实现[J]. 福建电脑,2008(7)∶33-34.

[3] 王剑. Action Script 在Flash 中制作互交动画的高级应用[J]. 科技创新导报,2008(25)∶26.

猜你喜欢

音频体积设置
多法并举测量固体体积
中队岗位该如何设置
聚焦立体几何中的体积问题
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
小体积带来超高便携性 Teufel Cinebar One
音频分析仪中低失真音频信号的发生方法
谁的体积大
Pro Tools音频剪辑及修正
本刊栏目设置说明