基于Flash80简易声音播放器的
基于Flash8.0简易声音播放器的设计 《农业网络信g>)201o年第12期研究与开发
基于Flash8.0简易声音播放器的设计
邢素萍,王健南
(南京丁业职业技术学院,南京210046)
摘要:利用Flash8.0的脚本语句制作了一个声音播放器,用按钮实现了声音文件的播放和停止,通过脚本实现了对声
音文件的声道和音量的控制.制作中主要使用了"动作"中Sound类对象的一些基本属性和方法.
关键词:播放器;脚本
中图分类号:TP3文献标识码:B文章编码:1672—6251(2010)12—0034—03 DesignaShnpleSoundwithFlash8.0player XINGSuping,WANGJiannan
(NanjingInstituteofIndustryTechnology,Nanjing210046)
Abstract:ThissectionofthescriptusingFlash8.0tocreateacontrolstatement,thesoundplaye
r,withbuttonstoachieveasound
filetoplayandstop,throughthescript,toachievethechannelofthesoundfileandvolumecontr
o1.Mainlyusedintheproduction
of"action"intheSoundclassobjectssomebasicpropertiesandmethods.
Keywords:player;script
先导人一个声音文件.并将该文件绑定在一个声
音对象上.制作播放和停止按钮,通过按钮控制声音
文件的播放和停止.再建立一个空白影片剪辑,通过
对该影片剪辑的脚本代码的编写,用键盘来控制声音
文件播放时的声道和音量.为了更直观地看到对声道
和音量的控制,在场景中绘制了两个代表声道和音量
的滚动条
1声音的导入
声音的导人步骤如下:
(1)启动Flash8.0后,单击【文件】/【新建】, 新建一个Flash文件.单击【修改】/【文档】,在影片 属性对话框中,设置场景的大小为400pxx3OOpx,背 景色选为淡紫色,其他为默认值.
(2)单击【文件】/【导入】/【导入到库】命令, 弹出【导人到库】对话框,找到文件存放位置,选择 一
首mp3格式的音乐文件,单击打开,则会出现一个 进度条指示导入文件的情况.
(3)单击【窗口】/【库】或直接按Ctrl+L键打开 库,可以看到导人的音乐文件已存入库中,如图1所 示.在库中出现波浪形图案和两个按钮.单击可以 作者简介:邢素萍(1957一),女,教授,研究方向:计算机应用. 收稿日期:2010—12—06
播放声音文件,单击-可以停止播放.
(4)用鼠标在库中的音乐文件上右击,在快捷菜 单中选择【链接…】命令.在打开的【链接属性】对 话框中,选择【为ActionScript导出】复选框,则【标 识符】变为可选,在后面的输人栏中,为这个声音文 件命名一个标志名称,输入voicel,如图2所示. 口卫目?—???——嘲麓黼羹鹱鬟黪霉i #……——…匿匦
…一,…………童翻
ri
t[1l-*
^?til出..
《一—————一ll—
l|
图1库中的声音文件图2调整对象的位置 (5)选中第1帧,选择【窗口】/【开发面板】/ 【动作】命令,打开"动作"面板,为这一帧添加如 下脚本语言:
myvoice=newSound0; myvoice.attachSoundCvoicel");
(6)单击【插入】/【新建元件】命令,新建一个 《农业网络信息》2o10年第12期研究与开发 按钮元件,只在"单击"帧插入关键帧后,拖出一个 小矩形来.
(7)编辑好透明按钮元件后,同到主场景.单击 【文件】/【导人】/【导入到舞台】,导人一个播放按钮 图片和一个停止按钮图片.
(8)单击绘图工具箱中的文本按钮A,在场景中 分别输入"播放"和"停止",字体颜色设置为红色,
如图3所示. 大小与按钮图片匹配,
(9)按Ctrl+L键调出元件库.从元件库中将按钮 拖放两次到界面中来,并分别移动到两个图片上,如 图4所示
图3导入的播放和停止图片图4导出透明按钮元件 以上的步骤中,将一个声音文件导人到动画库 中,但并没有把这个声音文件从库中拖放到场景中, 避免其在时间轴上占用太多帧.而是只给它命名了一 个标志(在【链接】对话框中).在主场景的帧脚本 中,定义了一个新的Sound类对象,并把以标志命名 的声音文件绑定在这个对象上.添加了两个控制按 钮,在后面的步骤中添加脚本来直接控制声音文件的 播放与停止.还要通过键盘来控制音量和左右声道的 均衡.通过将声音文件导入到当前文档的库中,可以
把声音文件加入到Flash中.
2控制播放声音文件
(1)鼠标在"播放"按钮上左击,在菜单中选择
【窗口】/【开发面板】/【动作】命令,在【动作一按钮】 面板中,添加如下脚本:
on(press){myvoice.start(0,10);)
(2)为"停止"按钮添加如下脚本:
OH(press){myvoice.stop0;} (3)控制声音播放的音量和左右声道的均衡效果 的制作如下:新建一个空白的电影片断元件,不作任 何操作,回到主场景;新建一层,将这个空白"MC" 元件从库中拖放到场景编辑界面中来.它表现为一个 白色的小圆点.
(4)选择这个元件实例,打开【动作一影片剪辑】 面板,在面板中按下+按钮,选择【全局函数】/【影 片剪辑控制】中的【onClipEvent】选项,如图5所示. 然后在弹出的【事件】选项中,选择【keyDown】选 项.
(5)在面板中按_+按钮,选择【语句】/【变量】 中的【setVariable】选项,在set后面的括号中填人 圈5添加onClipEvent代码
…k'和"_root.myvoice.getVolume0",后者作为前者 的表达式,如图6所示.同样的方法,创建变量p= _
root.myvoice.getPan0. _f萄_i省萄葛—————I篷磐虢搿嘲誊秘喀锻鹜lI攀时轴辩翻l
f—j茆f—————————————————————麓芒嚣?l一…一…
署
{i?,cHHtl|}j幂幂亨?1,_一l?_ll
图6设足变置k
(6)添加脚本代码:
if(Key.getCode0==Key.UP){k=k+5;
一root.myvoice.setVolume(k);} (7)添加降低音量的脚本代码:
if(Key.getCode0==Key.DOWN){k=k-5;
_
root.myvoice.setVolume(k);) (8)添加控制左右声道的脚本代码:
if(Key.getCode0==Key.LE{ p=p一5:
root.myvoice.setPan(P);} if(Key.getCode0==Key.RIGHT){ p=p+5;
_
root.myvoice.setPan(P);} 该段代码的作用是:当按下LEUF(或RIGHT) 键时,变量P减小(或增大),并设置音量为P.
(9)制作随键盘上下左右键移动的两个条块来标 志音量和声道均衡.在场景中,绘制一个105x20的 矩形框,没有填充色;矩形框中绘制填充色为灰色, 边界线为黑色的小矩形,然后复制一个,并旋转90o. (10)建立一个"MC"元件,在该元件编辑场景
中,绘制一个小的矩形条.将此"MC"元件从库中拖 放两次到界面中来,并将其中一个旋转90.,分别放 置在之前绘制的矩形框中,如图7所示.
(11)在标志音量和声道的矩形旁边写上提示语
言,如图8所示.
(12)在【属性】面板中,为这两个元件实例命
名,水平条块的实例名为"mypan",竖直条块命名为 一一_
一
一憎.量
《农业网络信息》2010年第12期研究与开发 图7矩形框中放置绿色的MC元件图8添加提示语言 "
myvolume".
(13)在为空白"MC"元件编写的脚本中,增加
对这两个条块的坐标控制语句,通过直接控制_ root.
mypan._x的大小来控制其左右移动.同时,通过控制 _
root.myvolume.一Y的人小来控制其上下移动,其代码 为:
onClipEvent(keyDown)( k=_
root.myvoice.getVolume0; p=_root.myvoice.getPan0; if(Key.getCode0==Key.UP){k=k+5;
_
root.myvoice.setVolume(k); _
root.myvolume._
y--_root.myvolume.一Y一5;}
if(Key.getCode0==Key.DOWN){ k=k-5;
_root.myvoice.setVolume(k); _
root.myvolume._
y=_root.myvolume.一
y+5;}
if(Key.getCode0==Key.LEft){ p=p一5:
_root.myvoice.setPan(P); _root.mypanX:root.mypan.—lx一5;}
if(Key.getCode0==Key.RIGHT){ p=p+5;
_root.myvoice.setPan(P); _
root.mypan._x=一root.mypan._x十5;}}
(14)再添加一些编码,控制声道和音量滚动条, 使它们无法移动到矩形框外面.代码如下:
onClipEvent(keyDown){ k=一
root.myvoice.getVolume0; P_root.myvoice.getPan0; if(Key.getCode0==Key.UP){ if(k<100){
k=k+5:
_
root.myvoice.setVolume(k); _
root.myvolume.-
Y一root.myvolume.-
Y一5;}}
if(Key.getCode0==Key.DOWN)f if(k>0){
k:k一5:
_
root.myvoice.setVolume(k); _
root.myvolume._y=一
root.myvolume._y+5;)J if(Key.getCode0==Key.LErI){ if(p>一100){
P=p-5:
_root.myvoice.setPan(p); _root.mypan._x_root.mypan.—一5;}
}
if(Key.getCode0==Key.RIGHT){ if(p<lO0){
P=p十5;
_
root.myvoice.setPan(p); _root.mypan._x_root.mypan._x十5;)}
}
代码通过if条件语句控制.方向键只有在滚动条 没有走到边界的时候才有效:如果滚动条移动到了矩 形框的边界,则停止移动,程序对方向键的输入不响 应.
(15)新建一个图层,改名为背景,在该层中,
添加一些说明文字,同时装饰一下场景,如图9所 示
图9最后布置的场景
(16)到此,控制声音的动画就编辑完了,用按
钮和键盘实现了对声音文件的控制,可以按Ctrl+En. ter键来测试一下最后的效果.
3结束语
通过按钮实现了声音文件的播放和停止,同时, 通过脚本实现了对声音文件的声道和音量的控制.而 不需要让这个声音文件在时间轴上出现,其中主要应 用了"动作"中Sound类对象的一些基本属性和方 法.通过本例可以看出,脚本代码可以实现很强大的 功能.运用声音文件和声道控制制作的简易播放器可 用来播放喜欢的歌曲.
参考文献
【lJ贺小霞.Flash8动画制作
教程【M】.北京:清华大学出版社,
2006.