Я написал простой пример, который добавляет холст и рисует прямоугольник с размером обводки в масштабе 20 без режима.
Проблема в том, что если я вызову getBounds()
в первый раз, я получу правильный результат, но после вызова scale();
функция getBounds()
даст мне неверный результат.
Это будет принимать в качестве обводки инсульта, но у обводки нет масштабного режима, и на экране ничего не происходит, но в результате у меня будет значение x меньше. Может кто-нибудь сказать мне, как я могу это исправить?
protected var display :Canvas;
protected function addCanvas():void
{
display = new Canvas();
display.x = display.y = 50;
display.width = 100;
display.height = 100;
display.graphics.clear();
display.graphics.lineStyle( 20, 0x000000, 0.5, true, LineScaleMode.NONE );
display.graphics.beginFill( 0xff0000, 1 );
display.graphics.drawRect(0, 0, 100, 100);
display.graphics.endFill();
area.addChild( display );
traceBounce();
}
protected function scale():void
{
var m :Matrix = display.transform.matrix;
var apply :Matrix = new Matrix();
apply.scale( 2, 1 );
apply.concat( m );
display.transform.matrix = apply;
traceBounce();
}
protected function traceBounce():void
{
trace( display.getBounds( this ) );
}