背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

利用AS控制声音教程

[日期:2004-10-14] 来源:  作者: [字体: ]
声音的一些属性与方法:
mySound=newSound();//新建一个声音对象,对象的名称是mySound。
mySound.start(n);//开始在n秒播放声音,当n为空时,从开始播放。
mySound.stop();停止声音的播放。

音量控制:(范围从0-100)
mySound.getVolume();获取当前的音量大小。
mySound.setVolume();设置当前音乐的音量。

左/右均衡:(范围从-100到100)
mySound.getPan();获取左右均衡的值。
mySound.setPan();设置左右均衡的值。

声道音量:
mySound.getTransform();获取左右声音的音量。
mySound.setTransform();设置左右声道的音量。

读取声音:
mySound.loadSound();从外部载入声音。
mySound.attachSound();从库中加载声音。
mySound.getBytesLoaded();获取声音载入的字节数
mySound.getBytesTotal();获取声音的总字节数。

声音对象的属性:
mySound.duration;声音的长度。
mySound.position;声音已播放的毫秒数。

声音对象的函数:
mySound.onLoad;声音载入时调用。
mySound.onComplete;声音播放完成时调用。

在对声音进行AS控制前,我们先将解声音一些基本属性的控制和flash所遇到的声音的问题。
一:声音类型的选择:
    
一般情况下,我们习惯听MP3的音乐,如果我们要从外部加载声音的话,flash只支持MP3,其他的声音不允许被加载(不支持其他的声音)。但我们在使用的时候却发现这个问题,使用mp3的声音导出的SWF文件是非常的大,而我们使用wav导出的文件却非常的小,为什么呢?因为mp3本身就是一种压缩格式,而我们的flash在导出声音的时候,也是压缩格式,好比一个被挤干了水的海绵,不能在从里面挤出水来。而wav则像是一块没被挤过的水的海绵,则他可以大幅度的压缩。所以,我们不需要从外部导入声音的时候,一定要使用WAV格式的声音,而在外部导入声音的时候一定要使用mp3格式的声音。但我们如果从内部导入声音,其导出也是压缩格式,所以,我们使用内部导出声音的时候,也要使用WAV格式声音文件!
二:数据流与事件的区别
    我们导入到flash中一个声音文件,然后在帧中间插入该声音,然后将时间线放入到声音第一帧处,按下键盘的回车键。然后我们听到声音后在按下回车键,我们这时候能够看到,时间线停止运动了,但声音并没有停止。这是因为默认的声音同步是:事件。我们将下面的声音的事件换成数据流(Event换成Stream)在按我
们上面的操作,你会发现声音停止了。故我用自己的话总结:事件指的是声音从开始播放到停止为止结束。而数据流指的是将生音文件按帧分成每一块,然后在去按时间线的播放而播放。也就是说,我们如果不做AS的字幕与声音同步的话,那么我们就要按这种方法去插入字幕。具体方法在这里就不祥加解释了。

为了加以说明声音的控制,我们将使用实际的例子来对声音进行控制

打开库反选刚导入的声音

在对话框中输入要为加载声音的名称:

在动作面板中输入以下AS:

现在我们在测试的话,发现声音已经加载进来了!
(下面这部分是我在家里写的,上面的这部分是在公司写的,公司的系统是2000,MX2004英文版本,家里的系统是XP,MX2004中文版本)
现在我们在主场景中做控制,在主场景中我们按下图进行设置,(两滚动条,属于影片剪辑,我们设置好主场景后,在来做这两个滚动条!)

背景和文本安钮放入两层中,添加帧到第7帧。然后在添加一层写下如下脚本。(按钮事件加载外部声音)

第三帧中写入如下脚本:

第四帧写下如下脚本:

第五帧写下如下脚本:

第六帧写下如下脚本:

第7帧写下如下脚本:
gotoAndPlay(6);
每帧设置完成后,来设置控制声音音量和左右均衡的滚动条:
设置音量,主场景中将该影片剪辑命名为:sad ,滚动的小块是个影片剪辑命名为:sy,该影片剪辑中仅有一名称为sy的按钮。将sy影片剪辑定位好后,在as脚本中写如下代码:
_root.sad.sy.sy.onPress=function () {
_root.sad.sy.startDrag(false,0,_root.sad.sy._y,200,_root.sad.sy._y);//滚动滑块
}
_root.sad.sy.sy.onRelease=function () {
if (_root.shu==0) {//判断是内部加载还是外部加载
_root.mySound.setVolume((_root.sad.sy._x)/2)//设置音量
} else {
_root.ySound.setVolume((_root.sad.sy._x)/2)
}
stopDrag();//停止滚动
}
同样的道理设置好另外控制左右均衡的影片剪辑(_root.gd(影片剪辑名称).fgh(滑块名称).fsg(按钮名称).)
在gd中帧动作,设置脚本如下:
_root.gd.fgh.fsg.onPress = function () {
_root.gd.fgh.startDrag(false,0,_root.gd.fgh._y,200,_root.gd.fgh._y);//滚动滑块
}
_root.gd.fgh.fsg.onRelease=function () {
if (_root.shu==0) {//判断是内部加载还是外部加载
_root.mySound.setPan(_root.gd.fgh._x-100)//设置左右均衡值
} else {
_root.ySound.setPan(_root.gd.fgh._x-100)
}
stopDrag();//停止滚动
}

发布影片


阅读:
录入:admin

推荐 】 【 打印
上一篇:在FLASH中调用ASP
下一篇:Flash MX快捷键
相关新闻      
本文评论       全部评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款