我有一个组件,绘制一个网格的东西,我想要一个小的突出显示方块跟随鼠标周围突出显示鼠标当前所在的方块。
整个网格基本上只是一个大的精灵(这是一个非常大的网格,这比使用预先存在的组件更快),高亮显示的方块是另一个精灵,我试图根据鼠标位置移动它。
所以,我有一个附加到栅格子画面上的MouseEvent.MOUSE_MOVE处理程序,它试图确定鼠标的位置和它所在的方块,以便它可以将突出显示的方块移动到正确的位置。我使用的是localX/localY,但只要我移动鼠标下方的高亮显示精灵,它们就会变成高亮显示的局部区域,而不是网格!
我也在玩stageX/Y,但是当舞台被滚动或者你的组件隐藏在嵌套的显示容器中时,这些似乎变得非常无用。
发布于 2009-01-29 12:23:28
基本上,我认为,您需要检查网格组件的mouseX和mouseY属性,该属性将为您提供与该组件相关的鼠标坐标。然后,一点数学应该能够告诉你你已经完成了什么网格元素。
发布于 2009-01-29 16:05:02
假设您的高亮显示精灵是网格的兄弟,并且它们都是主应用程序的子级,并且您已经在网格内绘制子精灵(正方形):您可以向网格的每个正方形精灵添加事件侦听器。在鼠标经过时,高亮显示正方形。然后,您可能不需要使用grid.localToGlobal(new Point(targetSquare.x,targetSquare.y))或highlightSquare.globalToLocal(grid_point)执行任何网格或鼠标坐标的转换。
https://stackoverflow.com/questions/491346
复制相似问题