0

チャンネルを使ったボリュームスライダーを作ろうとしています。

これを行う方法がわかりません。

これが私のコードです:

import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.media.Sound;

// Enter Frame Event
var sliderValue:uint = mySlider.sliderKnob.x;
addEventListener(Event.ENTER_FRAME, frame);
function frame(event):void {
    sliderValue = mySlider.sliderKnob.x ;
    status_txt.text = "Volume: "+sliderValue;
    var snd:Sound = new Sound();
    var channel:SoundChannel = new SoundChannel();
    var volumeLevel = channel.soundTransform;
    var req:URLRequest = new URLRequest("Background.mp3")
    snd.load(req);
    channel = snd.play();
    var newLevel:Number = mySlider.sliderKnob.x / 100;
    volumeLevel.volume = newLevel;
    channel.soundTransform = volumeLevel;
}
4

1 に答える 1

0

すべてのフレームでサウンドをインスタンス化してロードしています。そして、新しいSoundTransformインスタンスを作成する必要があります!
スライダー自体が機能していると思います!

var snd:Sound = new Sound();
var channel:SoundChannel = new SoundChannel();
var volumeLevel:SoundTransform = new SoundTransform();

snd.load(new URLRequest("Background.mp3"));
channel = snd.play();

addEventListener(Event.ENTER_FRAME, frame);

function frame(event):void {
    sliderValue = mySlider.sliderKnob.x ;
    status_txt.text = "Volume: "+sliderValue;
    var newLevel:Number = sliderValue / 100;
    volumeLevel.volume = newLevel;
    channel.soundTransform = volumeLevel;
}
于 2013-03-10T12:09:21.547 に答える