George
George

Reputation: 15551

Actionscript 3: get display object at pixel

How can I enumerate display objects under a pixel relative to the stage?

Clarification: I want to write a function which get (x,y) as input and returns an array of objects as output.

update: I want to avoid looping over all the display objects, to tell which one is under the specified pixel.

Upvotes: 7

Views: 4921

Answers (2)

Bryan Grezeszak
Bryan Grezeszak

Reputation: 959

Any DisplayObjectContainer (such as a MovieClip or the stage) has a method called getObjectsUnderPoint that returns an array of display objects under that point. It takes a Point object as an argument.

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

If you are using it in a class don't forget to import flash.geom.Point;

Upvotes: 16

Simon Groenewolt
Simon Groenewolt

Reputation: 10665

The hitTestPoint() method will get you information if a DisplayObject is at the specified point (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#hitTestPoint())

To get a list of objects you would have to recursively investigate all children of the stage, I don't think there is a predefined function for that.

Alternatively: What are you trying to achieve? Maybe you can just use events and make them bubble?

Upvotes: 0

Related Questions