【发布时间】:2014-09-23 17:59:08
【问题描述】:
好的,所以我有一个页面,上面有 5 个影片剪辑/按钮。当您将鼠标悬停在每一个上时,它们会亮起(OVER 状态),当您单击它们时,它们会展开(DOWN 状态)。问题是,如果您有多个展开的影片剪辑(处于 DOWN 状态),它们会重叠并且看起来很糟糕。我想对它们进行编码,因此一次只能扩展 1 个。我怎样才能做到这一点?我想我需要在每个按钮上使用 IF 语句,例如“如果任何其他影片剪辑处于 DOWN 状态,则禁用此影片剪辑的 DOWN,如果没有其他按钮处于 DOWN 状态,则启用此影片剪辑的 DOWN 状态”或类似的东西但我不知道怎么写。请帮忙。这是其中一个影片剪辑的代码:
Step0btn.stop();
Step0btn.addEventListener(MouseEvent.MOUSE_DOWN, onStep0Press);
Step0btn.addEventListener(MouseEvent.MOUSE_OVER, onStep0Over);
Step0btn.addEventListener(MouseEvent.MOUSE_OUT, onStep0Out);
function onStep0Press(event:MouseEvent):void
{
// toggle between frame 1 and 3 on button press
Step0btn.gotoAndStop(Step0btn.currentFrame == 3 ? 1 : 3);
}
function onStep0Over(event:MouseEvent):void
{
if (Step0btn.currentFrame != 3)
{
Step0btn.gotoAndStop(2);
}
}
function onStep0Out(event:MouseEvent):void
{
// only switch back to UP state if the button is "pressed"
if (Step0btn.currentFrame != 3)
{
Step0btn.gotoAndStop(1);
}
}
好的,我们已经解决了重叠影片剪辑的问题,但是在影片剪辑的 DOWN 状态下,另一个影片剪辑具有以下代码:
Step0img.stop();
Step0img.addEventListener(MouseEvent.MOUSE_DOWN, onStep0imgPress, false, 999);
function onStep0imgPress(event:MouseEvent):void
{
Step0img.gotoAndStop(2);
event.stopImmediatePropagation();
}
这使我可以单击嵌套的影片剪辑,而无需触发 MOUSE DOWN 并关闭展开的影片剪辑。我认为禁用 MOUSECHILDREN 可能也禁用了此功能。
【问题讨论】:
标签: actionscript-3 flash button adobe movieclip