动作接收鼠标事件对于较低的索引和部分覆盖显示对象?
-
18-09-2019 - |
题
我已经在阶段2级的精灵。 bottomSprite被添加到显示列表第一,其次topSprite。 topSprite部分地覆盖bottomSprite。
我已经添加一个事件监听器bottomSprite为MouseEvent.MOUSE_MOVED通知简单地跟踪mouseX和mouseY的坐标。然而,通知不用于由topSprite覆盖bottomSprite的部分工作。
var bottomSprite:Sprite = new Sprite();
bottomSprite.graphics.beginFill(0x666666, 0.5);
bottomSprite.graphics.drawRect(150,150, 150, 150);
bottomSprite.graphics.endFill();
addChild(bottomSprite);
var topSprite:Sprite = new Sprite();
topSprite.graphics.beginFill(0x00FFFF, 0.5);
topSprite.graphics.drawRect(250,50, 150, 150);
topSprite.graphics.endFill();
addChild(topSprite);
bottomSprite.addEventListener(MouseEvent.MOUSE_MOVE, traceCoords);
function traceCoords(evt:MouseEvent):void
{
trace ("Coord = X:" + bottomSprite.mouseX + ", Y:" + bottomSprite.mouseY);
}
解决方案
topSprite.mouseEnabled = false;
请注意,该topSprite
将不接收任何更多的鼠标事件。你不能让他们两个同时接收鼠标事件。因为鼠标移动发生无论是在bottomSprite
或topSprite
的顶部,而不是他们两个人 - 他们是兄弟姐妹。
假如topSprite
一直bottomSprite
的孩子,当你整个前徘徊后会收到鼠标事件 - 因为孩子是其父的一部分
不隶属于 StackOverflow