Вопрос

Это способ получить все клипы фильмов в область с AS3, мне нужно, чтобы это сделать несколько выборов.

Это было полезно?

Решение

Не потребуется использовать getObjectsUnderPoint().Если все элементы находятся в одном, содержащем клип, вы можете просто пройти через контейнеры, дети и проверить, находятся ли они в вашем выборе.

// The list of items contained in the selection.
var selection:Array = new Array();

// The rectangle that defines the selection in the containers coordinate space.
var selectionRect:Rectangle = new Rectangle(x, y, width, height);

// Loop throught the containers children.
for(var a:int; a<container.numChildren; a++){
    // Get the childs bounds in the containers coordinate space.
    var child:DisplayObject = container.getChildAt(a);
    var childBounds:Rectangle = child.getRect(container);

    // Check if this childs bounds against the selection bounds
    if(childBounds.intersects(selectionRect)){
        selection.push(child);
    }
}

Другие советы

Я почти уверен, что нет ничего «встроенного», чтобы получить все перемещения в область.

Единственное, что приближается, это, вероятно, GetObjectSunderPoint. Отказ Этот метод предоставит вам список дисплеев под одной точкой, а не области, но может быть использован для вручную находить движения в области.

У вас может быть спрайт, который является «областью». Это означает, что это размер области, которую вы хотите проверить. Так что просто проберите каждый перевод и проверяйте с помощью HittestObject или HittestPoint, если перемещение сталкивается со спрайтом. Если так, то это в этой области. Вот как я создаю Trant and Select Units Thing в играх RTS.

Ну, если вы хотите проверить все объекты под областью, вы должны использовать для Loop с помощью метода HittestPoint. И этот цикл может быть выброшен, наложив на это большое приращение для цикла. Например, если вы знаете, что у вас нет такого объекта, ширина или высота которого меньше 50 пикселей, то вы положите 50 в качестве увеличения вложенного цикла по ширине или высоте или оба. Вот образец, чтобы найти все точки в область прямоугольника или любая область, которую вы указываете

for (var j: int = rect.x; j0) {trace ("найдено объектов"+объекты); }}}

Ну, если вы хотите проверить все объекты под областью, вы должны использовать для Loop с помощью метода HittestPoint. И этот цикл может быть выброшен, наложив на это большое приращение для цикла. Например, если вы знаете, что у вас нет такого объекта, ширина или высота которого меньше 50 пикселей, то вы положите 50 в качестве увеличения вложенного цикла по ширине или высоте или оба. Вот образец, чтобы найти все точки в область прямоугольника или любая область, которую вы указываете

for (var j: int = rect.x; j <= rect.width; j ++) {

for (var i: int = rect.y; i <= rect.height; i ++) {

var pt: point = new Point (x, y);

Objects = container.getObjectSunderPoint (pt)

if (objects.length> 0) {trace ("найдено объекты"+Objects); }

}

}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top