2013-04-22 100 views
0

我的聲音被嵌入作爲資產類停球在AS3中嵌入的聲音

[Embed(source="../../assets/gameloop.mp3")] 
     private static var gameLoopSound:Class; 
     public static var gameLoop:Sound; 

的聲音在另一個類

Assets.gameLoop.play() 

播放,但我要如何制止這種聲音?在我看來,.stop()方法是顯而易見的方法,但這似乎不起作用。

回答

0

使用此方法,您將失去鏈接到SoundChannel對象,您可以使用該對象來停止正在播放的聲音。你做兩件事:首先,製作一個公開可用的變量,類型爲SoundChannel,併爲其分配調用結果值Assets.gameLoop.play()。其次,將yourVariable.stop()放在需要停止音樂的地方。很可能你會在Assets類中使用另一個變量。但是,爲了更好的安全性,做一對靜態函數將解決這對變量,如下所示:

private static var gameLoopChannel:SoundChannel; 
private static var gameLoop:Sound=new gameLoopSound(); 

public static function playGameLoop():void { 
    if (gameLoopChannel) return; 
    gameLoopChannel=gameLoop.play(); 
} 
public static function stopGameLoop():void { 
    if (!gameLoopChannel) return; // no sound is being played 
    gameLoopChannel.stop(); 
    gameLoopChannel=null; 
} 
+0

優秀 - 非常感謝。 – LeBlaireau 2013-04-22 10:58:44