Flex: как изменить громкость EMBEDDED звука? - PullRequest
0 голосов
/ 23 февраля 2011

В поисках того, как изменить громкость звука, я всегда получаю это раздражающее snd=new Sound(URLRequest), за которым следует snd.setVolume(val).О, хорошо, но мой звук - это не URLRequest, а вставка.

Я сделал много случайных попыток (1), но безрезультатно.Как мне сделать это вместо этого?

(1), включая приведение моего класса к Sound, создание Sound с классом embed в качестве аргумента, создание SoundTransform и установку его на канал и т. д.

1 Ответ

3 голосов
/ 23 февраля 2011

Создайте свой встроенный класс следующим образом:

[Embed(source="MySound.mp3")]
public var soundClass:Class;


protected function application1_creationCompleteHandler(event:FlexEvent):void
{
    var smallSound:Sound = new soundClass() as Sound;
    var trans:SoundTransform = new SoundTransform(.01);
    smallSound.play(0,0,trans);
}

Обновление:

В случае, если вы действительно хотели узнать, как изменить громкость, если звук уже воспроизводился:

[Embed(source="MySound.mp3")]
public var soundClass:Class;
public var smallSound : Sound;
public var vol : Number = 0.01;
public var trans : SoundTransform;

public var chan : SoundChannel = new SoundChannel();

protected function application1_creationCompleteHandler(event:FlexEvent):void {
    smallSound = new soundClass() as Sound;
    trans = new SoundTransform(vol);
    chan = smallSound.play(0,0,trans);
}

protected function volUp_clickHandler(event:MouseEvent):void {
    vol += .1;
    trans = new SoundTransform(vol);

    chan.soundTransform = trans;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...