我使用Canvas itemRenderer作为我用来显示图像的容器。请参阅下面的伪代码。
image = new Image();
image.source = data.@thumb;
this.addChild(image);
this.addEventListener(MouseEvent.MOUSE_OVER, enlarge(image));
this.addEventListener(MouseEvent.MOUSE_OUT, shrink(image));
当我将鼠标悬停在画布上时,会调用放大功能。但是,只要我将鼠标移动到图像或其他子元素上,就会触发MOUSE_OUT事件。
有人能指出我禁用此行为的方法吗?
谢谢:)
答案 0 :(得分:16)
您应该使用MouseEvent.ROLL_OVER
和MouseEvent.ROLL_OUT
事件。
从Flash CS4文档:
当鼠标从不是其子项之一的对象进入显示对象的区域或其任何子项的区域时,显示对象将调度rollOver事件。这与mouseOver事件的行为不同,每次鼠标进入显示对象容器的任何子对象的区域时,即使鼠标已经在显示对象容器的另一个子对象上,也会调度该事件。
答案 1 :(得分:2)
我同意乔希的观点,ROLL_OVER
事件似乎更适合你正在做的事情。但是,您应该了解flash.display.DisplayObjectContainer
的{{3}}属性(UIComponent
的祖先)。
答案 2 :(得分:1)
部署适用于我。 关于comboBox问题: 您还可以检查事件的目标是否是容器中的子项。