我正在制作一张地图,上面有许多鼠标悬停在''点''上,这些地方淡出了影片剪辑文字。我遇到的问题是,包含在父动画片段中的文本本身也变成了鼠标悬停区域。我只想让点本身激活鼠标事件,而不是它的内容。我在网上搜索并找到了“解决方案”,例如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
答案 0 :(得分:0)
视频有帮助!
看起来正在发生的事情就是你的信息框出现在你的初始鼠标停留时,即使在淡出后仍然加载,所以即使你看不到它(淡出),它仍然存在并触发你的翻车。
您可以通过多种不同方式解决此问题。最快(尽管最邋))是在'out'动画结束时在停止/循环之前添加一个空框架。
更好的做法可能是将roll_over侦听器附加到点对象本身。 (你可以将roll_out留在父'clayton'上。)