Вы можете попытаться определить объект Shape, используя API рисования для создания неправильной формы, а затем выполнить hitTestPoint () для случайно сгенерированной точки в границах вашей Shape. В своем коде размещения позиции вы можете создать цикл, который повторяется до тех пор, пока тест попадания не вернет false, что означает, что точка находится за пределами области избегания.
var avoidMe:Shape = new Shape();
avoidMe.graphics.beginFill(0x0000FF, 0); //make it transparent fill
avoidMe.graphics.lineTo(x1, y1);
avoidMe.graphics.lineTo(x2, y2);
avoidMe.graphics.lineTo(x3, y3);
avoidMe.graphics.lineTo(xn, yn);
avoidMe.endFill();
addChild(avoidMe);
var w:Number = 100; //width of placement area
var h:Number = 100; //height of placement area
var p:Point = new Point();
do {
p.x = Math.random() * w;
p.y = Math.random() * h;
}
while (avoidMe.hitTestPoint(p.x, p.y));
var s:Sprite = new Sprite();
s.x = p.x;
s.y = p.y;
addChild(s);
Вы также можете сделать что-то очень похожее с hitTestObject (), чтобы проверить фактические границы ваших объектов вместо точки.