as3为每个玩家增加声音达到新的水平

时间:2014-04-18 22:01:39

标签: actionscript-3 audio

每次玩家进入新关卡时,我如何添加声音效果?我正在试图解决这个今晚到期的项目,我已经开展了数周的工作,我的项目对项目的不同方面使用了不同的类。

等级类代码:

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 );
            }       
        }
    }
}
来自Engine类的

片段:

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

1 个答案:

答案 0 :(得分:0)

Flash中有多种播放声音的方式。老实说,使用代码最可靠的方法是为自己编写一个专用类,实现SoundChannel,管理所有声音加载,回放和转换(音量,声音等)。它需要一些工作,但从长远来看,它会得到回报。

当然,看起来你的最后期限比那更严格。如果你需要一个快速而肮脏的解决方案,这里就是。

  1. 将您的声音添加到Flash库中。 (这应该加快速度,否则你必须oad it from an external file constantly.

  2. 设置库中的声音,以便从ActionScript 3中访问。Here's an answer detailing how to do that.为此,我将其称为" sndLevelUp。"

    < / LI>
  3. 在课程顶部创建一个声音实例:var levelUp:sndLevelUp = new sndLevelUp();

  4. 每次播放器升级时播放声音。 levelUp.play();

  5. 如果您有更多时间,可能需要设置SoundChannel,这样可以更好地控制播放,音量和平移。否则,这是快速的方法。