2009-04-14 28 views
7

Làm cách nào để liệt kê các đối tượng hiển thị dưới pixel tương ứng với vùng hiển thị?Actionscript 3: lấy đối tượng hiển thị tại pixel

Làm rõ: Tôi muốn viết một chức năng mà có được (x, y) như là đầu vào và trả về một mảng các đối tượng như đầu ra.

cập nhật: Tôi muốn tránh lặp qua tất cả các đối tượng hiển thị, để biết cái nào nằm dưới pixel được chỉ định.

+0

Bạn có thể thêm một số chi tiết khác không? –

+0

Nhập: x, y. Đầu ra: mảng của các đối tượng – George

Trả lời

16

Bất kỳ DisplayObjectContainer (chẳng hạn như MovieClip hoặc sân khấu) có phương thức gọi là getObjectsUnderPoint trả về một mảng đối tượng hiển thị dưới điểm đó. Nó lấy đối tượng Point làm đối số.

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

Nếu bạn đang sử dụng nó trong một lớp, đừng quên nhập flash.geom.Point;

+0

Tốt, tôi không biết điều đó. –

0

Các hitTestPoint() phương pháp sẽ giúp bạn có được thông tin nếu một DisplayObject là tại các điểm quy định (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#hitTestPoint())

Để có được một danh sách các đối tượng mà bạn sẽ phải đệ quy điều tra tất cả con cái của sân khấu, tôi không nghĩ rằng có một hàm được xác định trước cho điều đó.

Cách khác: Bạn đang cố gắng đạt được điều gì? Có lẽ bạn chỉ có thể sử dụng các sự kiện và làm cho chúng bong bóng?

+0

Đây là vấn đề, bởi vì cách này tôi sẽ phải gọi hitTextPoint cho tất cả các đối tượng hiển thị được thêm vào danh sách hiển thị, và nó sẽ làm chậm mọi thứ xuống. Tôi chỉ muốn các đối tượng phản ứng với các vật thể gần đó. – George

+0

Ah, như Bryan chỉ ra, có thực sự là một phương pháp để có được một danh sách! –

Các vấn đề liên quan