射击类游戏的开发过程(Flash)(七)

      Flash 2005-12-14 13:39
8、声音

寻找一些和游戏相配的声音并非是一件简单的事情。找到后导入到库中,右击选择链接(linkage)然后
选择“为actionscript导出“,输入一个标示符:laser。 然后制作一个按钮来控制声音的开关。
然后再复制一下代码到主场景的第一帧:

var laser = new Sound();
laser.attachSound("laser");
var explode = new Sound();
explode.attachSound("explode");
var music = new Sound();
music.attachSound("musicloop");
music.start();

这里面的加载的参数均和链接的标示符对应。这里先创建一个声音对象,然后把库中的声音加载到该对象

当中,播放该声音,如果想让声音循环的话,可以这样:

music.start(secondOffset,loops)

这里面的两个参数分别代表的是 声音开始的标记处和循环的次数。如果loops=0的话就是无限循环。

这里还要用到一个onSoundComplete的方法,该方法是判断声音是否加载完毕,可以保证声音不会出现中

断。
用按钮来控制声音的开关的有两处:
一是飞机坠毁后,跳转到了第二帧的gameover,点击返回第一帧需要重新播放声音
on(release)
{
  stopAllSounds();
  gotoAndStop(1);
}
这样可以停止所有的声音,

还有就是声音的开关:
on (release)
{
  if (_root.sound_on == true)
  {
    _root.sound_on = false;
  }
  else
  {
    _root.sound_on = true;
    music.start();
  }
}

这里所讲到的不过是背景的音乐,而一些个开火或者坠毁的音效可以在相应的触发事件里使用也可以添加

到动画中。


.........
for (var h = 1; h<=numEnemy; h++) {
                if (this.hitTest(_root["enemy"+h])) {
                    this.removeMovieClip();
                                         music.start(0,1)
                    _root["enemy"+h].play();
                }

...............


标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}