从主时间线中删除在MovieClip中调用的声音

时间:2012-07-17 18:42:20

标签: actionscript-3

当我在特定项目的时间轴上前进时,我目前难以从播放中删除特定声音。

用户选择时间轴上的特定项目,该项目将显示特定的动画片段,然后在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上停止。如果任何人可以提供任何帮助,以防止声音播放和删除此事件监听器(如果可能,通过主时间轴上的代码),将不胜感激。

此致 达伦

1 个答案:

答案 0 :(得分:1)

如果您想要停止声音,请不要使用SoundMixer.stopAll()

在检查所述movieclip的visible属性后,您可以在MOUSE_UP事件中使用它。