0

我正在制作一张地图,其中有许多鼠标悬停在淡入电影剪辑文本的“点”上。我遇到的问题是包含在父影片剪辑中的文本本身也变成了鼠标悬停区域。我只想让点本身激活鼠标事件,而不是它的内容。我在网上搜索了整个网络并找到了诸如 mouseChildren = false 之类的“解决方案”;和mouseEnabled = false;不工作。我不知道我只是编码错误还是什么。任何帮助,将不胜感激。这是我的代码:

clayton.buttonMode = true;
clayton.addEventListener(MouseEvent.ROLL_OVER, over);
clayton.addEventListener(MouseEvent.ROLL_OUT, out);

function over(event:MouseEvent):void{
    clayton.gotoAndPlay("over");

}

function out(event:MouseEvent):void{
    clayton.gotoAndPlay("out"); 
}

将鼠标悬停在父影片剪辑上后,包含的文本会正确淡入。当鼠标移出父影片剪辑时,包含的文本会正确淡出。但是,在将鼠标悬停在父动画剪辑上并移出之后,所包含的文本就会像父动画剪辑一样,并激活鼠标悬停动画。这是一个显示实际问题的视频。请注意,当我一开始将鼠标悬停在地图的中心区域时,什么也没有发生。但是在我将鼠标悬停在地图上的点上之后,中心区域就会激活动画。

这是我的问题的视频示例: http ://www.youtube.com/watch?v=OC2vVjMQTH4

4

1 回答 1

0

视频有帮助!

看起来正在发生的事情是您的初始鼠标悬停时出现的信息框即使在淡出后仍保持加载,因此即使您看不到它(淡出),它仍然存在并触发您的翻转.

您可以通过多种不同的方式解决此问题。最快的(尽管最草率的)是在停止/循环之前在“出”动画的末尾添加一个空帧。

更好的做法可能是将您的 roll_over 侦听器附加到点对象本身上。(您可以将 roll_out 留在父级 'clayton' 上)。

于 2012-06-28T21:10:16.037 回答