0

現在、特定のプロジェクトのタイムラインを進めるときに、再生中の特定のサウンドを削除するのに苦労しています。

ユーザーは、特定のムービークリップを表示するタイムライン上の特定のアイテムを選択し、MOUSE_DOWN で特定のサウンドを再生します。

次のように存在する MOUSE_DOWN の eventListener:

stage.addEventListener(MouseEvent.MOUSE_DOWN, sprayWater);
stage.addEventListener(MouseEvent.MOUSE_UP, stopWater);

function sprayWater(event:MouseEvent):void
{
    waterarm.gotoAndStop(2);
    trace("SPRAYING WATER");    
}

function stopWater(event:MouseEvent):void
{
    waterarm.water.gotoAndPlay("waterE");   
}

「waterarm」のフレーム 2 には、水のアニメーションと水の音を開始する次のコードを含む「water」というムービークリップがあります。

var sfxWater:sfxwater;
var waterChannel:SoundChannel;
sfxWater = new sfxwater;
waterChannel = sfxWater.play();

フレーム「waterE」には、水が消えるアニメーションとコードが存在しますsfxWater.stop();

ユーザーがルート タイムラインでこのフレームを超えて進むと、ムービークリップがその時点でタイムラインに存在しなくなっても、水の効果音は MOUSE_DOWN に残ります。

理想的な結果は、このムービークリップがメイン タイムラインに表示されている場合にのみ、MOUSE_DOWN で再生され、MOUSE_UP で停止する個々のサウンドです。誰かがサウンドの再生を防ぎ、このイベントリスナーを削除できるようにするために(可能であればメインタイムラインのコードを通じて)支援を提供できる場合は、大歓迎です。

よろしく、 ダレン

4

1 に答える 1

1

音を止めることだけが必要な場合は、 を使用しないでくださいSoundMixer.stopAll()

上記のムービークリップのプロパティかどうかを確認した後、MOUSE_UP イベントで使用できvisibleます。

于 2012-07-18T12:23:53.717 に答える