当我在特定项目的时间线上前进时,我目前很难从播放中删除特定的声音。
用户选择时间轴上的特定项目,该项目将显示特定的影片剪辑,然后将在 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 上停止。如果有人可以提供任何帮助来阻止声音播放和删除此事件侦听器(如果可能,通过主时间线上的代码),我们将不胜感激。
问候,达伦