actionscript-3 - 每次播放器达到新水平时,as3都会添加声音

标签 actionscript-3 audio

每当玩家进入新关卡时,我如何添加声音效果?我正在努力为今晚应交的项目弄清楚这一点,并且我已经进行了数周的研究,并且我的项目针对项目的不同方面使用了不同的类。

等级类(class)代码:

package  {
    public class LevelData {
        public var backgroundImage:String;
        public var pointsToReachNextLevel:Number;
        public var enemySpawnRate:Number;
        public var levelNum:Number;

        public function LevelData(levelNumber:Number) {
            levelNum = levelNumber;
            if ( levelNumber % 2 == 1 )
                {
                backgroundImage = "Cosmic";
                pointsToReachNextLevel = 150;
                enemySpawnRate = 0.05;
            }
            else if ( levelNumber == 2 )
            {
                backgroundImage = "Mystic";
                pointsToReachNextLevel = 350;
                enemySpawnRate = 0.1;
            }
            else if ( levelNumber == 3 )
            {
                backgroundImage = "Cosmic";
                pointsToReachNextLevel = 600;
                enemySpawnRate = 0.15;
            }
            else if ( levelNumber == 4 )
            {
                backgroundImage = "Mystic";
                pointsToReachNextLevel = 5820; // roughly 3 minutes enemies stop appearing
                enemySpawnRate = 0.6 - ( 2 / levelNumber );
            }       
        }
    }
}

引擎类的摘录:
public function setBackgroundImage(): void //background change
{
        if (currentLevelData.backgroundImage == "Cosmic") {
            backgroundContainer.addChild(new CosmicBackground());
        } else if (currentLevelData.backgroundImage == "Mystic")
        {
            backgroundContainer.addChild(new MysticBackground());
        }
    }

最佳答案

在Flash中播放声音有多种方法。坦白地说,与代码配合使用的最可靠方法是为自己编写一个专用类,实现SoundChannel,该类可以管理所有声音的加载,播放和转换(音量,声像等)。从长远来看。

当然,看来您的截止日期要紧。如果您需要对此进行快速修复,就在这里。

  • 将声音添加到Flash库。 (这应该加快速度,否则您必须l oad it from an external file constantly.)
  • 将库中的声音设置为可从ActionScript 3访问。Here's an answer detailing how to do that.为此,我将其称为“sndLevelUp”。
  • 在类的顶部创建声音的实例:var levelUp:sndLevelUp = new sndLevelUp();
  • 每次玩家升级时播放声音。 levelUp.play();

  • 如果您有更多时间,则可能需要设置SoundChannel,它使您可以更好地控制播放,音量和声像。否则,这是快速的方法。

    关于actionscript-3 - 每次播放器达到新水平时,as3都会添加声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23163066/

    相关文章:

    flash - Actionscript - 获取当前函数的名称

    audio - 什么是 ffmpeg 视频过滤器 "between"用于音频过滤器的替代品

    windows-phone-7 - 赢电话7更改默认拨号器并播放声音

    ios - 在 iOS 上禁用移动 Chrome 的音频自动播放策略限制?

    audio - Arduino/处理当压电从Arduino敲门时播放声音文件吗?

    audio - Websocket丢帧?

    apache-flex - LoaderContext 和 ApplicationDomain 随 Adob​​e AIR 发生变化?

    flash - Flash Builder 中的输出文件名

    apache-flex - Adobe AIR 检测是否在 ADL 中运行?

    c - 如何尽可能调整函数的返回值(在 AS3 和 C 中)