在声音开始前将闪光设定为3音量?

时间:2014-06-24 07:42:43

标签: actionscript-3 flash volume

我已经读过,除非声音已经开始,否则不能在没有错误的情况下使用flash actionscript 3中的音量控制。

在我的情况下,我有一堆按钮在按下时触发声音,声音在mouse_up上停止。因此,由于鼠标忙于按钮,因此在声音期间无法使用音量控制,因此无法使用音量控制。 这是否意味着在这种情况下无法为用户提供闪存内的任何音量控制?

3 个答案:

答案 0 :(得分:0)

我不知道你在哪里阅读"但事实并非如此,您应该创建SoundTransform对象并设置volume属性。然后每次播放声音时,将SoundTransform指定给SoundChannel对象。

channel1 = mySound.play();
channel1.soundTransform = volumeAdjust;

答案 1 :(得分:0)

假设您使用flashPro滑块控件作为主音量控件(在时间轴上,实例名称为slider且最小值为0且最大值为100)。您可以执行以下操作:

import fl.controls.Slider;
import fl.events.SliderEvent;
import flash.media.SoundTransform;

var slider:Slider;
var st:SoundTransform = new SoundTransform(slider.value / 100); //set it right now to whatever the slider is
SoundMixer.soundTransform = st;

slider.addEventListener(SliderEvent.CHANGE,function(e){
    st.volume = slider.value / 100;
    SoundMixer.soundTransform = st; //SoundMixer is global volume, if you want volume specific to each sound, go with the answer from @SharpEdge
});

答案 2 :(得分:-1)

您可以使用音量控制在代码中设置音量变量,并在播放声音时使用该变量设置音量。

要设置所有声音的音量,请使用SoundMixer类。在任何这样的交互之前初始化它:

SoundMixer.soundTransform = new SoundTransform(1); //volume is set to maximum

在音量控件的事件侦听器中,根据新值修改SoundMixer.soundTranform的音量属性。

SoundMixer.soundTransform.volume = newVolumeValue;

确保newVolumeValue介于0和1之间。 或者,如果您要管理大量声音,则可以使用声音管理器库,如SoundAS。如果您使用它,您将有一个有用的方法来设置主音量:SoundAS.setMasterVolume(value)