0

私は音楽プレーヤーに4つの異なるトラック(ギター、ベース、ドラム、ボーカル)を持っています。それらはすべて、現在どのトラックが聞こえているかをチェック/チェック解除するためのチェックボックスとして名前が付けられています。また、開始するための再生ボタンもあります。したがって、たとえばボーカルとギターをチェックするときは、これら2つの楽器と、バックグラウンドでミュートされて演奏されているベースとドラムだけを聞きたいと思います。

問題は、これらの2つのボックスをオンにして開始すると、ステータスが静的であり、ボックスを押している間は動的に変化しないため、再生中に他のボックスを変更できないことです。

理解しやすいように、ギターとボーカルのみを使用したコードの抜粋:

        var vocals:Sound = new Sound();
        var vocalsChannel:SoundChannel = new SoundChannel();
        var vocalsTransform = new SoundTransform();
        vocalsChannel.soundTransform = vocalsTransform;
        vocals.load(new URLRequest("songsample.mp3"));

        var guitar:Sound = new Sound();
        var guitarChannel:SoundChannel = new SoundChannel();
        var guitarTransform = new SoundTransform();
        guitarChannel.soundTransform = guitarTransform;
        guitar.load(new URLRequest("funky.mp3"));

        voc_mc.addEventListener(MouseEvent.CLICK, _selectedVoc);
        git_mc.addEventListener(MouseEvent.CLICK, _selectedGit);

        function _selectedVoc(e:MouseEvent):void
        {
            var bool:Boolean = e.target.selected;

            if(bool)
            {
                vocalsTransform.volume = 1;

            }
            else
            {
                vocalsTransform.volume = 0;

            }
        }


        function _selectedGit(e:MouseEvent):void
        {
            var bool:Boolean = e.target.selected;

            if(bool)
            {
                guitarTransform.volume = 1;

            }
            else
            {
                guitarTransform.volume = 0;


            }
        }

        play_mc.addEventListener(MouseEvent.CLICK,
                                 function(evt:MouseEvent)
        {
            vocalsChannel = vocals.play(0,0,vocalsTransform);
            guitarChannel = guitar.play(0,0,guitarTransform);
        })

        stop_mc.addEventListener(MouseEvent.CLICK,
                                 function(evt:MouseEvent)
        {
            vocalsChannel.stop();
            guitarChannel.stop();
        })
4

1 に答える 1

2

チャネルの soundTransform プロパティをリセットする必要があります。

    function _selectedVoc(e:MouseEvent):void
    {
        var bool:Boolean = e.target.selected;

        if(bool)
        {
            vocalsTransform.volume = 1;

        }
        else
        {
            vocalsTransform.volume = 0;

        }
        vocalsChannel.soundTransform = vocalsTransform;
    }
于 2013-02-26T17:43:48.883 に答える