LineScaleMode.NONE上的getBounds()错误

时间:2009-11-09 17:41:13

标签: flex actionscript-3

我写了一个简单的例子,它添加了一个画布并绘制了一个矩形,笔画大小为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 ) );
    }

1 个答案:

答案 0 :(得分:0)

设置宽度/高度并缩放相同的显示对象会产生令人困惑的结果。您的Canvas类是否有异常(例如设置scrollRect或添加掩码)?

您也可以尝试获取Canvas'父级的边界,或者在Canvas上设置cacheAsBitmap并查看是否有帮助?