首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Actionscript 3,多个音轨

Actionscript 3,多个音轨
EN

Stack Overflow用户
提问于 2013-02-26 19:15:37
回答 1查看 1.2K关注 0票数 0

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

问题是,当我开始选中这两个框时,我不能在玩游戏时更改其他框,因为状态是静态的,并且在点击框时不会动态更改。

为了便于理解,我的代码中只有吉他和人声的摘录:

代码语言:javascript
运行
复制
        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();
        })
EN

回答 1

Stack Overflow用户

发布于 2013-02-27 01:43:49

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

代码语言:javascript
运行
复制
    function _selectedVoc(e:MouseEvent):void
    {
        var bool:Boolean = e.target.selected;

        if(bool)
        {
            vocalsTransform.volume = 1;

        }
        else
        {
            vocalsTransform.volume = 0;

        }
        vocalsChannel.soundTransform = vocalsTransform;
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15087650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档