我已经在阶段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将不接收任何更多的鼠标事件。你不能让他们两个同时接收鼠标事件。因为鼠标移动发生无论是在bottomSpritetopSprite的顶部,而不是他们两个人 - 他们是兄弟姐妹。

假如topSprite一直bottomSprite的孩子,当你整个前徘徊后会收到鼠标事件 - 因为孩子是其父的一部分

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top