2010-03-09 5 views
1

У меня есть 2 спрайтов на сцене. bottomSprite сначала добавляется в список отображения, а затем topSprite. topSprite частично покрывает bottomSprite.Actionscript Получение событий мыши для объектов с меньшим индексированным и частично закрытым отображением?

Я добавил прослушиватель событий в bottomSprite для уведомлений MouseEvent.MOUSE_MOVED, чтобы просто отслеживать координаты mouseX и mouseY. однако уведомление не работает для частей bottomSprite, которые покрываются topSprite.

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); 
    } 

ответ

2
topSprite.mouseEnabled = false; 

Обратите внимание, что topSprite не будет больше получать события мыши. Вы не можете заставить обоих из них получать события мыши одновременно. Поскольку движение мыши происходит либо сверху bottomSprite, либо topSprite, не оба они - они братья и сестры.

Был topSprite был ребенком bottomSprite, позже получит события мыши, когда вы наведите курсор на первое - потому что ребенок является частью его родителя.

+0

ah ha! имеет смысл. благодаря :) – TheDarkIn1978