現在、特定のプロジェクトのタイムラインを進めるときに、再生中の特定のサウンドを削除するのに苦労しています。
ユーザーは、特定のムービークリップを表示するタイムライン上の特定のアイテムを選択し、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 で停止する個々のサウンドです。誰かがサウンドの再生を防ぎ、このイベントリスナーを削除できるようにするために(可能であればメインタイムラインのコードを通じて)支援を提供できる場合は、大歓迎です。
よろしく、 ダレン