Wrong getBounds() on LineScaleMode.NONE

Posted by ghalex on Stack Overflow See other posts from Stack Overflow or by ghalex
Published on 2009-11-09T17:41:13Z Indexed on 2010/03/29 13:03 UTC
Read the original article Hit count: 409

Filed under:
|

I have write a simple example that adds a canvas and draw a rectangle with stroke size 20 scale mode none.

The problem is that if I call getBounds() first time I will get a correct result but after I call scale(); the getBounds() function will give me a wrong result.

It will take in cosideration the stroke but stroke has scalemode to none and on the screen nothing happens but in the result I will have a x value smaller. Can sombody tell me how can I fix this ?

   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 ) );
    }

© Stack Overflow or respective owner

Related posts about flex

Related posts about as3