Actionscript 3 动作脚本3,多个音频曲目

Actionscript 3 动作脚本3,多个音频曲目,actionscript-3,flash,audio,mute,Actionscript 3,Flash,Audio,Mute,我有四个不同的轨道(吉他,贝司,鼓,人声)在一个音乐播放器。它们都被命名为复选框,用于选中/取消选中当前可听到的曲目之一,我还有一个播放按钮开始播放。因此,当检查人声和吉他时,我只想听到这两种乐器和贝司以及鼓在背景中无声地演奏 问题是,当我一开始选中这两个框时,我无法在播放时更改其他框,因为状态是静态的,在点击框时不会动态更改 仅摘录我的代码,仅使用吉他和人声,便于理解: var vocals:Sound = new Sound(); var vocalsChan

我有四个不同的轨道(吉他,贝司,鼓,人声)在一个音乐播放器。它们都被命名为复选框,用于选中/取消选中当前可听到的曲目之一,我还有一个播放按钮开始播放。因此,当检查人声和吉他时,我只想听到这两种乐器和贝司以及鼓在背景中无声地演奏

问题是,当我一开始选中这两个框时,我无法在播放时更改其他框,因为状态是静态的,在点击框时不会动态更改

仅摘录我的代码,仅使用吉他和人声,便于理解:

        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();
        })

您需要重置频道上的soundTransform属性:

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

        if(bool)
        {
            vocalsTransform.volume = 1;

        }
        else
        {
            vocalsTransform.volume = 0;

        }
        vocalsChannel.soundTransform = vocalsTransform;
    }

@非常感谢MarcelaThanks,这正是我需要的建议!很高兴我能帮忙。如果这回答了您的问题,请确保选择它作为答案。