2009-04-14 5 views
7

Как я могу перечислять отображаемые объекты под пикселем относительно сцены?Actionscript 3: получить отображаемый объект в пикселе

Пояснение: Я хочу написать функцию, которая получит (х, у) в качестве входных данных и возвращает массив объектов как выход.

update: Я хочу, чтобы не перебирать все отображаемые объекты, чтобы определить, какой из них находится под указанным пикселем.

+0

Можете вложить дополнительные детали, пожалуйста? –

+0

Вход: x, y. Выход: массив объектов – George

ответ

16

Любой объект DisplayObjectContainer (например, MovieClip или этап) имеет метод, называемый getObjectsUnderPoint, который возвращает массив объектов отображения под этой точкой. В качестве аргумента требуется объект Point.

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

Если вы используете его в классе, не забудьте импортировать flash.geom.Point;

+0

Ницца, я не знал этого. –

0

hitTestPoint() метод поможет вам информацию, если DisplayObject находится в указанной точке (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#hitTestPoint())

Чтобы получить список объектов, которые должны были бы рекурсивно исследовать все дети сцены, я не думаю, для этого есть предопределенная функция.

Альтернативно: Чего вы пытаетесь достичь? Может быть, вы можете просто использовать события и заставить их пузыриться?

+0

Это проблематично, потому что таким образом мне пришлось бы называть hitTextPoint всем отображаемым объектам, добавленным в список отображения, и это замедляло бы работу. Я просто хочу, чтобы объекты реагировали на соседние объекты. – George

+0

Ах, как указывает Брайан, на самом деле есть способ получить список! –

Смежные вопросы