flash on 2013-12-20

by joanllenas
♥0 | Line 69 | Modified 2013-12-20 23:12:01 | MIT License
play

ActionScript3 source code

/**
 * Copyright joanllenas ( http://wonderfl.net/user/joanllenas )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/5Wgf
 */

package {
    import flash.geom.Rectangle;
    import flash.geom.Matrix;
    import flash.display.Sprite;
    public class FlashTest extends Sprite 
    {
        public function FlashTest() 
        {
            var sp:Sprite = new Sprite();
            //sp.graphics.lineStyle(1);
            sp.graphics.beginFill(0);
            sp.graphics.drawRect(0,0,150,50);
            sp.graphics.endFill();
         
            var m:Matrix = sp.transform.matrix;
            
            m.scale(1.8,1.3);
            m.rotate( 37  * (Math.PI/180) );
            m.translate(200,100);
            
            sp.transform.matrix = m;
            
            addChild(sp);
                        
            masking(sp);
        }
        
        private function masking(msk:Sprite):void
        {
            var mskb:Rectangle = msk.getBounds(this);
            
            var img:Sprite = new Sprite();
            img.graphics.lineStyle( 1, 0xFF0000 );
            img.graphics.drawRect( 0, 0, 150, 50 );
            
                    var offsetX:int = 0;
                    var offsetY:int = 0;
                    var tx:int = msk.transform.matrix.tx;
                    var ty:int = msk.transform.matrix.ty;

                    var maskMatrix:Matrix = new Matrix(
                        img.transform.matrix.a, img.transform.matrix.b, 
                        img.transform.matrix.c, img.transform.matrix.d, 
                        0, 0
                    );

                    maskMatrix.scale( 1.8,1.3 );
                    maskMatrix.rotate( 37 * (Math.PI/180) );
                    img.transform.matrix = maskMatrix;
                    
                    bb(img, 0x0000FF);
                    
                    var mskw:Number = mskb.width;
                    var mskh:Number = mskb.height;
                    
                    offsetY = (img.height - mskh) / 2;
                    offsetX = (img.width - mskw) / 2;
                    
                    maskMatrix.translate(tx - offsetX, ty - offsetY);

                    img.transform.matrix = maskMatrix;
                    
                    bb(img, 0x0000FF);
                    
            addChild(img);
        }
        
        private function bb(s:Sprite, c:uint):void
        {
            var b:Sprite = new Sprite();
            b.graphics.lineStyle( 1, c );
            b.graphics.drawRect(
                s.getBounds(this).x, s.getBounds(this).y, 
                s.getBounds(this).width, s.getBounds(this).height 
            );

            b.graphics.moveTo( s.getBounds(this).x + s.getBounds(this).width/2,
                s.getBounds(this).y );
            b.graphics.lineTo( s.getBounds(this).x + s.getBounds(this).width/2,
                s.getBounds(this).y + s.getBounds(this).height );
                
                
                b.graphics.moveTo( s.getBounds(this).x, s.getBounds(this).y +  s.getBounds(this).height/2);
            b.graphics.lineTo( 
                s.getBounds(this).x + s.getBounds(this).width,
                s.getBounds(this).y + s.getBounds(this).height/2 
               );
                
            
            addChild( b );
        }

    }
}