我写了一个简单的例子,它添加了一个画布并绘制了一个矩形,笔画大小为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 ) );
}
答案 0 :(得分:0)
设置宽度/高度并缩放相同的显示对象会产生令人困惑的结果。您的Canvas类是否有异常(例如设置scrollRect或添加掩码)?
您也可以尝试获取Canvas'父级的边界,或者在Canvas上设置cacheAsBitmap并查看是否有帮助?