收藏本站 | 站点地图 | 繁體中文
沭阳乐园
您现在的位置: 沐阳乐园 >> 文章中心 >> 网络教程 >> 动画实例 >> 正文
Flash制作声音控制         
Flash制作声音控制
作者:佚名 文章来源:网络 点击数:1812 更新时间:2010-12-17 2:26:43

(1)五线谱:新建一个名为“五线谱”的mc,在场景中用铅笔工具(平滑)画一条波浪形的曲线--点击选中这条曲线--菜单--编辑--复制,系统会向下向右移动10个像素复制出另一条曲线,如此反复4次,得到五线谱的五根线条,如线条间有粘合,可以手动调整位置--再建一层--在五线谱的上面隔2帧画几个不同颜色,不同位置的音符,总共做十来帧就行了。

(2)下拉菜单。新建一层名为“下拉列表”,在播放列表下面的舞台区画一无边浅色渐变矩形,大小约为105*80,点击矩形,转换成名为“下拉列表”的电影剪辑,双击之进行编辑,矩形的上边沿对准十字星,然后加三层,共四层,从下向上,最下面为底色层,向上为按钮层,再向上为遮罩层,最上面为帧标签层,在底色层的第二帧加关键帧,清空第一帧中的东西,使其成为空白关键帧,19帧层加普通帧。按钮层的第二帧加关键帧,从库中拖入歌曲一,歌曲二,歌曲三共三个按钮,菜单--修改--对齐--左对齐--按高度均匀分布,19帧加普通帧。在遮罩层的第二帧加关键帧,在底色的上方画一个无边任意色的矩形,大小110*3,在第10,19帧加关键帧,10帧处放大矩形使其全遮住底色的矩形,在第2,10帧建立形状动画,设置此层为遮罩层。在帧标签层的第1,2,10,11,20帧处加关键帧,1,10,20帧上加stop,在第2帧处加帧标签open,在第11帧处加帧标签close。检查最下面的底色层是不是被遮罩了,如果没有,拖到遮罩层下。在底色层,按钮层,遮罩层的第20帧各加空白关键帧。

设置歌曲一,二,三的动作指令:

歌曲一:

// 加载库里标识符为1的音乐对象
on (release) {
_root.music(1);
// 点击后关闭菜单
gotoAndPlay("close");
// 向上一级,运行主场景中的第二帧
with (_parent) {
gotoAndPlay(2);

}
}

歌曲二:

// 加载库里标识符为2的音乐对象
on (release) {
_root.music(2);
gotoAndPlay("close");
with (_parent) {
gotoAndPlay(2);
}
}

歌曲三:


// 加载库里标识符为3的音乐对象
on (release) {
_root.music(3);
gotoAndPlay("close");
with (_parent) {
gotoAndPlay(2);
}
}

(3)设置音乐。打开库中名为“音乐”的文件夹,分别选中音乐,点右键--链接--如右图设置,标识符分别为1,2,3。

(4)设置音量平衡组件,打开标尺,先建一个名为“音量滑块”的MC,把按钮“滑块”拖入第一帧,中心对准十字星,(放大完成),在按钮加指令,(见下边),再建一个名为“音量平衡”的MC,拖入矩形组件,在属性面板中设置大小为100*12,左端对准X轴0度,在第二层拖入“滑块”,大小为5*13,中心点位于X轴上+50的位置,实例名“hua”,

on (press) {
startDrag("", false, 0, 0,100, 0);
}
on (release) {
stopDrag();
}

(5)设置左右声道组件,建一个名为“声道滑块”的MC,把按钮“滑块”拖入第一帧,中心对准十字星,在按钮上加指令:(见下面),再建一个名为“声道平衡”的MC,拖入矩形组件,在属性面板中设置大小为200*12,中心点对准十字星,在第二层拖入“滑块”,大小为10*13,注意中心点位于X轴上0的位置,实例名“hua”

on (press) {
startDrag("", false, -100, 0, 100, 0);
}
on (release) {
stopDrag();
}

 

★★ 三,设置场景:

(1)在场景中新建一层,名为“按钮”,本例中的按钮如下:

1、播放,停止按钮:把播放,停止按钮拖过来,设置大小为30*30。

2、音量平衡和声道平衡按钮:拖放“音量平衡”和“声道平衡”二个MC在相应文字的右面,设置尺寸为90*13,各自进行顶对齐,按宽度均分间距。音量平衡的实例名为:cc

3、下拉三角按钮:“下拉三角”放在播放列表的旁边,调整下拉菜单的位置,实例名:bb

(2)在“舞者”层中,第二帧加空白关键帧,拖入库中的名为“舞者”的电影剪辑,注意要和第一帧中的人物位置相同。

(3)新建一层,名为“音量指示”,在第二帧加空白关键帧,拖入库中的“音量指示”MC,放在场景中的下部,实例名为:aa,大小约为350*0。

 (4) 新建一层,“星星和球”,把库里的“激光球”和“星星”拖出来,放好,在第一帧先拖星星,在第二帧加关键帧,除星星外再拖入激光球和五线谱,设置大小,放好位置。星星可以多拖几个。

(4)新建一层:action,加指令如下:

    在第一帧写入:

// 建立名为mysound的音乐对象
mysound = new Sound();
// 定义库中的音乐函数music
function music(n) {
// 停止所有的音乐
mysound.stop();
// 捆绑库里的音乐给mysound
mysound.attachSound(n);
// 开始播放音乐,参数:秒飘移量为0,循环100次,秒飘移量为声音开始播放的地方。
mysound.start(0, 100);
}
stop();

在第二帧上写入:

// 设置音量指示条在Y轴上的缩入比例为音量平衡按钮hua在X轴上的数值乘以1
setProperty("_root.aa", _yscale, getProperty(_root.cc.hua, _x)*1);

在第三帧上写入:

gotoAndPlay(2);

     下面是“音量平衡”和“声道平衡”二个MC上的代码:

音量大小控制
左右声道平衡
// 当进入帧时,调用函数mysound
// volume 一个从 0 到 100 之间的数字,表示声音级别。100 为最大音量,而 0 为没有音量。默认设置为 100。
// 取值为hua在X轴上的位置
onClipEvent (enterFrame) {
_root.mysound.setVolume(hua._x);
}
// 当进入帧的时候。执行下列动作:
// 调用函数mysound
// pan 一个整数,指定声音的左右均衡。有效值的范围为 -100 到 100,其中 -100 表示仅使用左声道,100 表示仅使用右声道,而 0 表示在两个声道间平均地均衡声音,即双声道。
// 把滑块hua在X轴上的数值赋值给pan
onClipEvent (enterFrame) {
_root.mysound.setPan(hua._x);
}

    下面是加在开始和停止上的代码:

在第一帧,第二帧各加关键帧,开始按钮的第一帧、第二帧代码相同,停止按钮的第一帧无代码。

开始
停止
// 调用函数mysound,开始播放
on (release) {
_root.mysound.start(0, 100);
}
// 加载库里标识符为1的音乐对象
on (release) {
_root.music(1);
}
on (release) {
gotoAndPlay(2);
}

on (release) {
_root.mysound.stop();
}
on (release) {
gotoAndPlay(1);
}

   

下拉列表的语句:

on (release) {
with (_root.bb) {
gotoAndPlay(2);
}
}

    ★★ 本课总结:

1、在本例的五线谱中,我们用到了复制这个功能,不知您发现了没有,好像flash mx中的复制功能和别的软件不太一样?下面是flash mx中有相似功能的菜单的区别列表:

复制
粘贴
粘贴到当前位置
不用拷贝,直接复制,复制出的对象向下,向右移动10个象素。 需拷贝后,才能粘贴,粘贴出的对象随机出现。 需拷贝后才能粘贴,贴粘出的对象严格出现在原对象所在的坐标上。

2、关于链接库里文件问题我们并不陌生,在校长讲的“鱼翔浅底”这一课中就用到了这种方法,不同的是在那个例子中链接的是元件,在这里链接的声音,您可参考校长的教程:“鱼翔浅底”。校长的“Flash5 Action Script 入门教程”讲的非常精彩,强烈建议没看过的朋友去看看。

    在flash mx中使用声音有二种方法,一种是直接在场景中导入,一种是在库里链接使用,比较二种方法,各有千秋,下面是二种方法的比较:

直接在场景中导入
在库里链接使用
能在场景进行编辑,如编辑头尾,效果,同步,循环等。 不能编辑
能在库中压缩 能在库中压缩。
作为事件能跨场景播放,作为数据流,不能跨场景播放。 能跨场景播放

★★ 知识发散:

一、下面是常用FLASH MX 声音函数列表:

语法
参数
说明

new Sound();

new Sound(target);

target 该参数是可选参数(对应于必选参数),用于指定生成的Sound对象所在和控制的MC。 产生指定的MC中的新声音对象,该对象将用于控制这个MC中的声音,如果没有指定target参数,则产生的对象将控制所有的时间线上的声音。
attachSound("idName");

idName:库中的声音文件名字。 绑定库中的声音,对大小写不敏感。
getPan();

该函数返回当前声音的左右均衡值,数值为在-100~100的整数。
getVolume(); 该函数返回当前音量值,数值在0~100,其中0为静音,100为音量最大值,缺省设置为100。
setPan(pan); pan 设置声音左右均衡度的一个整数值,范围在-100~100之间。-100表示只有左声道有声音,100表示只有右声道有声音,等于0表示左右声道平均分配。
该函数用于设置左右声道的均衡度值,设置的新均衡值将覆盖原有的值
setVolume(volume); volume 设置声音音量值,一般为0~100,不过好象超过100也可以使用。
该函数用于设置声音对象的音量值。

mySound.start();

mySound.start(secondOffset,loop);

secondOffset 用于跳过指定的时间偏移,直接开始播放声音。该参数为可选参数

loop 指定声音播放的循环次数。该参数为可选参数

如果secondOffset不指定时间偏移的话,将从头开始播放,但在flash mx中好像并不好用。

mySound.stop();

mySound.stop("idName");

idName 可选参数 用于控制声音的停止,没有参数idName为停止当前声音的播放,如果指定了idName,则停止播放指定的声音。

二、介绍一个很实用的音乐开关。

    在flash mx中,音乐开关是一个常常要用到的东东,下面,我们来介绍一个很实用的音乐开关,只用一个按钮实现对声音的控制,因为是知识发散,我们说的简单一点,源代码在此点击下载

    在这个示例中,关键的地方只有四层二帧,一帧是开,一帧是关,借助按钮上的action指令,在二帧间跳转。为了简明扼要,我们用列表和图片来表示各层各帧的设置:

 

层号 层名称
第一帧
第二帧
1
文字层 输入文字“关闭声音” 输入文字“打开声音”
2
隐形按钮层

指令:

on (release) {
gotoAndPlay(2);
}
on (release) {
stopAllSounds();
}

指令:

on (release) {
gotoAndPlay(1);
}

3
声音层 把声音放在这一帧里 无声音
4
action层 stop stop

★★ 结束语:

本教程到今天为止就全部结束了,在这五讲中,我力求用最小的篇幅容纳最多的知识,有时用二种方法介绍本来用一种方法就能实现的效果,目地是为了让大家掌握更多的东西。在选材上,能简单就不复杂,不让大家把精力消耗在图形的绘制上,尽可能提供制作时必需的全部素材和源文件。所选的五个实例都没有太大的难度,但在这五例中,我们涉及到相当多的知识点,通过实例及课后总结发散,我们谈到了flash mx动画的三种形式比较;文件的减肥;图形文字的运用;在场景中如何深入一个或几个元件内部进行编辑;矢量图和位图的区别;怎样控制MC的基本属性,如旋转,缩放,复制等;认识了场景和元件的坐标;层深的概念:鼠标的隐藏和跟随;绝对路径和相对路径的指向;不用打开源文件就能引用其中的元件;复制,粘贴和粘贴到原位的区别;创建音乐对象并在库中链接声音;做了一个下拉菜单;用单按钮控制声音的播放;怎样控制音量,声道平衡及一些action指令的用法等等。

文章录入:晴天    责任编辑:清水洗尘 
  • 上一篇文章:
  • 下一篇文章:
  • 【字体: 】 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    广告招商
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ::发表评论::
     姓 名:
     评 分: 1分 2分 3分 4分 5分
     评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用本网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 广告招商
    文章 下载 图片 文字广告
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登陆

    备案/许可证编号: 闽ICP备16020960号-1号 域名创建于2016年8月
    版权: 沐阳乐园 All Rights Reserved 站长:张萍 邮箱:381415887@qq.com 联系QQ:联系站长