免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
Board logo

标题: flashCS5.5怎么控制音乐声音的大小 [打印本页]

作者: 网雨霏霏    时间: 2016-5-24 10:06     标题: flashCS5.5怎么控制音乐声音的大小

本帖最后由 网雨霏霏 于 2016-5-24 10:22 编辑

原帖地址:
http://tieba.baidu.com/p/3588203691?pid=90276275901#90276275901





首先,要控制声音的大小,必须使用代码的方式加载声音。
如果将声音直接放入时间轴上播放,无法通过代码调整音量




因为提问者没有给出AS语言的版本,所以,我会同时撰写两种语言的写法

在3楼发布AS2的做法
4楼发布AS3的做法

2楼用于:撰写AS2和AS3都必须事先准备的事情
作者: 网雨霏霏    时间: 2016-5-24 10:34

本帖最后由 网雨霏霏 于 2016-5-24 12:14 编辑

一、准备工作:
即使是加载音乐,方法也有两种。一种是直接加载flash文件外部的音乐
另一种是将音乐导入flash的库内,通过在库内指定"AS链接"后进行编程
但,无论是哪一种,操作后,都要事先声明一个声音变量。我假设声音对象的名字是mysd

1.直接加载flash文件外部的音乐
【1】AS2的写法:
  1. var mysd:Sound=new Sound();
  2. mysd.loadSound("http://vip.2d999.com/uploads/201605/201605c2428f067f6a1c8a526f9853bf94293c.mp3",true);
  3. mysd.start();
复制

【2】AS3的写法:
  1. var url:String=http://vip.2d999.com/uploads/201605/201605c2428f067f6a1c8a526f9853bf94293c.mp3;
  2. var mysd:Sound=new Sound(new URLRequest(url));
  3. mysd.play();
复制

2.通过在库内指定"AS链接"后进行编程
假设,库面板内的AS链接是shengyin:
[attach]417[/attach]
【1】AS2的写法:
  1. var mysd:Sound=new Sound();
  2. mysd.attachSound("shengyin");
  3. mysd.start();
复制

【2】AS3的写法:
  1. var mysd:Sound=new shengyin();
  2. mysd.play();
复制

作者: 网雨霏霏    时间: 2016-5-24 10:44

本帖最后由 网雨霏霏 于 2016-5-24 10:45 编辑

二、AS2修改音量大小的做法:
我们已经设好了声音对象是mysd
那么,在AS2内,如下修改即可:
  1. mysd.setVolume(60);
复制

将数字60修改为自己想要的值即可。
100就是原始音量。

友情提示:无论你在2楼中使用的是哪种方式加载的音乐,本楼中的代码都是通用的。
作者: 网雨霏霏    时间: 2016-5-24 10:59

本帖最后由 网雨霏霏 于 2016-5-24 11:16 编辑

三、AS3修改音量大小的做法:
AS3对于声音的控制变得更加复杂了,音量的操作不能直接控制声音对象实现。而是需要事先定义两个对象。
一个是SoundChannel类的对象,另一个是SoundTransform类的对象。
为了方便叙述,我直接以本楼给出的完整代码中创建的对象为例,进行介绍:
SoundChannel类对象是sdcn  SoundTransform类对象是sdtf
并且,声音播放的代码需要赋值给sdcn
然后,设置音量的操作,就是通过给sdcn进行赋值,赋的值就是sdft的volume属性。
需要将2楼的对于AS3的写法的代码稍作修改,
mysd.play()替换为sdcn=mysd.play()

简而言之:AS3调节音量的步骤是:修改sdtf的volume属性即可(6)。但是这个sdtf需要赋值给sdcn(7),而sdcn又必须在一开始就与mysd建立联系(4)。
括号内的数字是下面的完整代码的行号


然后,完整代码如下:
【这是载入外部声音的写法。至于加载库内的写法,请参考2楼,仅需将下面代码的第一行修改即可(其余地方都一模一样)】

  1. var url:String="http://vip.2d999.com/uploads/201605/201605c2428f067f6a1c8a526f9853bf94293c.mp3"
  2. var mysd:Sound=new Sound(new URLRequest(url))
  3. var sdcn:SoundChannel=new SoundChannel()
  4. sdcn=mysd.play()
  5. var sdtf:SoundTransform=new SoundTransform()
  6. sdtf.volume=0.6
  7. sdcn.soundTransform=sdtf
复制







友情提示:这里的音量数值,设为1的时候是原始音量。与AS2的100是不同的




欢迎光临 flash之路-flash技术交流 (http://flashroad.joinbbs.net/) Powered by Discuz! 7.2