【问题标题】:Actionscript 3: get display object at pixelActionscript 3:以像素获取显示对象
【发布时间】:2009-04-14 14:04:17
【问题描述】:

如何枚举相对于舞台的像素下的显示对象?

说明:我想编写一个函数,它以 (x,y) 作为输入并返回一个 对象数组 作为输出。

更新:我想避免循环遍历所有显示对象,以判断哪一个在指定像素之下。

【问题讨论】:

  • 你能补充一些细节吗?
  • 输入:x,y。输出:对象数组

标签: flash actionscript-3


【解决方案1】:

任何 DisplayObjectContainer(例如 MovieClip 或舞台)都有一个名为 getObjectsUnderPoint 的方法,该方法返回该点下的显示对象数组。它接受一个 Point 对象作为参数。

var myObjects: Array = stage.getObjectsUnderPoint(new Point(5, 5));

如果你在课堂上使用它,别忘了导入 flash.geom.Point;

【讨论】:

  • 很好,我不知道那个。
【解决方案2】:

如果 DisplayObject 位于指定点 (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#hitTestPoint()),hitTestPoint() 方法将为您获取信息

要获得对象列表,您必须递归地调查舞台的所有子级,我认为没有预定义的函数。

或者:你想要达到什么目标?也许您可以只使用事件并让它们冒泡?

【讨论】:

  • 这是有问题的,因为这样我必须调用 hitTextPoint 到所有添加到显示列表的显示对象,这会减慢速度。我只想让物体对附近的物体做出反应。
  • 啊,正如 Bryan 指出的那样,实际上有一种方法可以获取列表!
猜你喜欢
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
相关资源
最近更新 更多