Actionscript 3 停止as3中的嵌入声音
我的声音嵌入到as资产类中Actionscript 3 停止as3中的嵌入声音,actionscript-3,audio,Actionscript 3,Audio,我的声音嵌入到as资产类中 [Embed(source="../../assets/gameloop.mp3")] private static var gameLoopSound:Class; public static var gameLoop:Sound; 声音在另一个班级播放 Assets.gameLoop.play() 但是我怎么才能阻止这种声音呢?在我看来,.stop()方法显然是一种方法,但它似乎不起作用。使用这种方法,您将失去指向可用于停止播放
[Embed(source="../../assets/gameloop.mp3")]
private static var gameLoopSound:Class;
public static var gameLoop:Sound;
声音在另一个班级播放
Assets.gameLoop.play()
但是我怎么才能阻止这种声音呢?在我看来,.stop()方法显然是一种方法,但它似乎不起作用。使用这种方法,您将失去指向可用于停止播放的声音的
SoundChannel
对象的链接。您可以做两件事:首先,创建一个类型为SoundChannel
的公共可用变量,并将Assets.gameLoop.play()
call的结果值分配给它。第二,在需要停止音乐的地方放置一个yourVariable.stop()
。您很可能会在资产
类中使用另一个变量。但是,为了更好的安全性,制作一对静态函数来处理这对变量,如下所示:
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;
}