4

我正在使用 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 事件。

谁能指出我禁用这种行为的方法?

谢谢 :)

4

3 回答 3

16

您应该改用MouseEvent.ROLL_OVERMouseEvent.ROLL_OUT事件。

来自 Flash CS4 文档:

当鼠标从不是其子对象之一的对象进入显示对象的区域或其任何子对象的区域时,显示对象将调度 rollOver 事件。这与 mouseOver 事件的行为不同,鼠标每次进入显示对象容器的任何子对象的区域时都会调度该事件,即使鼠标已经在显示对象容器的另一个子对象上也是如此。

于 2009-02-17T14:45:08.017 回答
2

我同意乔什的观点,这些ROLL_OVER事件似乎更适合你正在做的事情。但是,您应该了解( 的祖先) 的mouseChildren属性。flash.display.DisplayObjectContainerUIComponent

于 2009-02-17T16:32:41.550 回答
1

推出对我有用。关于comboBox问题:还可以检查事件的目标是否是容器中的子项。

于 2010-11-08T12:33:48.210 回答