当我在特定项目的时间轴上前进时,我目前难以从播放中删除特定声音。
用户选择时间轴上的特定项目,该项目将显示特定的动画片段,然后在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上停止。如果任何人可以提供任何帮助,以防止声音播放和删除此事件监听器(如果可能,通过主时间轴上的代码),将不胜感激。
此致 达伦
答案 0 :(得分:1)
如果您想要停止声音,请不要使用SoundMixer.stopAll()
。
在检查所述movieclip的visible
属性后,您可以在MOUSE_UP事件中使用它。