0

我有一个按钮,我想用它来静音音频,当它被点击时,它会变成一个取消静音的图标,然后来回切换。

问题是,它在我的代码之后的阶段仍然可见。最奇怪的是,如果我在调用函数后跟踪可见性,它实际上说它是隐藏的:但它在舞台上清晰可见。

play_pause.addEventListener(MouseEvent.CLICK, change_sound);

function change_sound (e:MouseEvent):void{
        fl_NS.soundTransform = muteAudio;
        e.target.visible = false;
        trace(play_pause.visible);
        muted = true;
}

以下是我尝试过的其他一些无效的方法:

play_pause.addEventListener(MouseEvent.CLICK, change_sound);

function change_sound (e:MouseEvent):void{
        fl_NS.soundTransform = muteAudio;
        play_pause.visible = false;
        trace(play_pause.visible);
        muted = true;
}

另一个版本:

play_pause.addEventListener(MouseEvent.CLICK, change_sound);

function change_sound (e:MouseEvent):void{
        fl_NS.soundTransform = muteAudio;
        play_pause.gotoAndPlay(2);
        muted = true;
}

再无视觉变化。只是说一些关键点:

  • 我的movieclip肯定被称为play_pause
  • 它跟踪它在单击之前是可见的,在单击之后是不可见的(跟踪语句返回错误)但没有视觉变化
  • 该功能肯定会触发

我有一段时间没有使用 AS3,我猜我犯了一个真正的菜鸟错误?完整代码: http: //pastebin.com/RirGdS1w

.fla 文件链接: http: //db.tt/51DD0Fbl

4

2 回答 2

0

也许其他人可以完全解释这一点,但我发现一旦将SWF 嵌入到 HTML 页面中,它就可以按预期工作。当它在 Flash CS5.5中运行时,它不起作用。现在这将是调试的噩梦,但为了今晚的项目,我让它工作。

于 2013-06-12T21:19:58.237 回答
0

在侦听器函数中尝试e.currentTarget

target是最深的元素,就像另一个movieclip中的moviclip

currentTarget是与 addEventListener 方法关联的对象

于 2013-06-12T21:22:09.140 回答