0
我寫了一個簡單的示例,它添加了一個畫布並繪製了一個矩形,其中筆劃大小爲20的縮放模式無。LineScaleMode.NONE上的getBounds()錯誤
問題是,如果我第一次撥打getBounds()
,我會得到一個正確的結果,但在撥打scale();
後,getBounds()
函數會給我一個錯誤的結果。
它會考慮中風,但中風的縮尺模式爲無,屏幕上沒有任何反應,但結果是我的x值會變小。 Sombody可以告訴我如何解決這個問題?
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));
}
該示例非常簡單,如果您將畫布置於20,20處並帶有邊框,並開始縮放畫布的X位置,如果追蹤getBounds但getRect不會相同,例如您將看到相同的結果請檢查我的示例並添加以下內容: –
Alexandru
2009-11-23 10:02:32