Привет!
Растолкуйте пожалуйста как работает hitTestPoint().
Я так понимаю, что при создании Rectangle вокруг него образуется Bounds толщиной 1 px, на который должен реагировать hitTestPoint при использовании аргумента shapeFlag = false. Для теста было написано следующее:

Код AS3:
var rect:Shape = new Shape();
rect.graphics.beginFill(0x555555);
rect.graphics.drawRect(1, 1, 5, 5)
rect.graphics.endFill();
addChild(rect);
var point:Point = new Point();
var tf:TextField = new TextField();
tf.multiline = true;
tf.autoSize = TextFieldAutoSize.LEFT;
for (var j:int = 0; j < 8; j++){
point.y = j;
for (var i:int = 0; i < 8; i++){
point.x = i;
var ifTrue:Boolean = rect.hitTestPoint(point.x, point.y, true);
tf.appendText(ifTrue ? "O" : "X");
}
tf.appendText("\n");
}
tf.x = 24;
tf.y = 24;
addChild(tf);
При изменении аргумента shapeFlag результаты следующие:

Код AS3:
true:
XXXXXXXX
XXOOOOOX
XXOOOOOX
XXOOOOOX
XXOOOOOX
XXOOOOOX
XXXXXXXX
XXXXXXXX

Код AS3:
false:
XXXXXXXX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XXXXXXXX
Вопросы: почему bounds, на который реагирует shapeFlag, не прямоугольник, а L-образная линия? Я так понимаю, при использовании shapeFlag=false должен получиться прямоуголник 7x7.
Добавлено через 45 часов 34 минуты
Возможно Bounds идет слева и сверху по внутреннему краю, поэтому рамка получается L-образная ?