在暂停按钮中使用SoundChannel.position可以减少我的音频。 AS3游戏

时间:2014-01-20 17:26:16

标签: actionscript-3 flash position onpause soundchannel

我正在制作一个时间短的游戏,我希望主题音乐的确切长度。

静音使用音量控制效果很好,我可以使用最后一个位置变量暂停和恢复声音,然后从该位置再次播放主题。

然而,我注意到我暂停音量的次数越多,最后会切断部分歌曲,所以我会在关卡结束时留下几秒钟的沉默。

应用程序类是一个级别切换器,每个级别和对象都是它自己的类。声音也在他们自己的课堂上。主题下面的Sound Class中的一个变量。

public var themeOne:Sound = new ThemeOne();
        public var themeOneChannel:SoundChannel = new SoundChannel();
        public var themeOneTransform:SoundTransform = new SoundTransform(0.1, 0.5);
        public var themeOneLastPosition:Number = 0;      

在第一级课程中,我声明了_sounds变量来访问Sounds类。当我按下P将_gamePause布尔值变为true并转到pauseScreen方法,该方法停止并记录主题位置,然后从该位置再次播放。

private var _sounds:Sounds = new Sounds();

...

private function pauseScreen():void
        {
            if (_gamePause)
            {
                _pauseScreen.pauseScreen.visible = true;
                this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
                _sounds.themeOneLastPosition = _sounds.themeOneChannel.position;
                _sounds.themeOneChannel.stop();

            }
            else
            {
                _pauseScreen.pauseScreen.visible = false;
                this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
                _sounds.themeOneChannel = _sounds.themeOne.play(_sounds.themeOneLastPosition);
                _sounds.themeOneChannel.soundTransform = _sounds.themeOneTransform;

                }

            }
        }

请记住暂停和取消暂停效果很好,但每次按下时似乎都会剪断几毫秒。任何想法为什么会这样?如果这就是它如何,有没有一种方法可以从最后一个位置变量减去一定的毫秒数?

1 个答案:

答案 0 :(得分:0)

这个链接对我很有帮助,你可以从中找到答案。 http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d21.html