我创建了一个工具提示类。 当鼠标悬停在MovieClip上时,它会启用,当它出来时它会禁用。 movieclip包含一些其他的动画片段。 我的代码是:
to.addEventListener(MouseEvent.MOUSE_OVER, showTip);
to.addEventListener(MouseEvent.MOUSE_OUT, hideTip);
to.addEventListener(MouseEvent.MOUSE_MOVE, MoveTip);
,功能是:
private function showTip(evt: MouseEvent) {
if (tip != null && !tip.visible) {
tip.x = evt.stageX;
tip.y = evt.stageY;
tip.visible = true;
}
}
private function hideTip(evt: MouseEvent) {
if (tip != null && tip.visible) {
tip.visible = false;
}
}
private function MoveTip(evt: MouseEvent) {
if (tip != null && tip.visible) {
tip.x = evt.stageX;
tip.y = evt.stageY;
}
}
它的工作,但有时hideTip函数和showTip函数同时启用,并且提示闪烁。
答案 0 :(得分:0)
显然,您的工具提示模糊了底层to
动画片段,从而有效地让Flash认为鼠标不在to
MC中,从而触发鼠标输出侦听器。一种可能的解决方案是将tip
从鼠标光标移开,而不是将其显示在鼠标位置的顶部。
const offsetX:Number=4;
const offsetY:Number=4; // experiment with these
private function showTip(evt: MouseEvent) {
if (tip != null && !tip.visible) {
tip.x = evt.stageX+offsetX;
tip.y = evt.stageY+offsetY;
tip.visible = true;
}
}
private function MoveTip(evt: MouseEvent) {
if (tip != null && tip.visible) {
tip.x = evt.stageX+offsetX;
tip.y = evt.stageY+offsetY;
}
}
答案 1 :(得分:0)
尝试使用
to.addEventListener(MouseEvent.ROLL_OVER, showTip);
to.addEventListener(MouseEvent.ROLL_OUT, hideTip);
如果鼠标改变,例如,这就避免了调度事件的问题。在一个区域内或在相同工具提示目标的子项之间的字母和透明度之间,应该完全具有一个工具提示。 Sry我的英语。希望能帮助到你。问候
答案 2 :(得分:0)
正如@BotMaster和@Vesper建议的那样,tip
显示在鼠标下方,这会导致MouseEvent.MOUSE_OUT
触发。
为防止这种情况,请执行以下操作:
tip.mouseEnabled = false;
tip.mouseChildren = false;