Using transparent bitmapData with graphics

by leichtgewicht
It uses 
♥0 | Line 52 | Modified 2011-05-10 12:24:14 | MIT License | (replaced)
play

Related images

ActionScript3 source code

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

package {
    import flash.events.Event;
    import flash.display.GraphicsSolidFill;
    import flash.display.GraphicsPath;
    import flash.display.GraphicsStroke;
    import flash.geom.Matrix;
    import flash.display.GraphicsEndFill;
    import flash.display.GraphicsTrianglePath;
    import flash.display.GraphicsBitmapFill;
    import flash.display.IGraphicsData;
    import flash.display.Shape;
    
    import flash.display.BitmapData;
    import flash.system.Security;
    import flash.display.Bitmap;
    import flash.utils.getQualifiedClassName;
    import flash.utils.describeType;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.display.Sprite;
    
    public class BitmapGraphicsTest extends Sprite {
        
        private var _loader: Loader = new Loader();
        
        public function BitmapGraphicsTest() {
            
            Security.loadPolicyFile("http://assets.wonderfl.net/crossdomain.xml");
            
            _loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onData );
            _loader.load( new URLRequest( "http://assets.wonderfl.net/images/related_images/0/04/0448/04480338f41c9e5ef9b5e99b48efef00f7fd6cd3m" ) );
        }
        
        public function onData( e: Event ): void {
            var alphaB: BitmapData = new BitmapData(256, 1, true, 0);
            for( var i: int = 0; i<256; ++i ) {
               var color: uint = (i << 24);
               alphaB.setPixel32(  i, 0, color );
            }
            
            var bd: BitmapData = Bitmap( _loader.getChildAt(0) ).bitmapData;
            
            var v: Vector.<IGraphicsData> = new Vector.<IGraphicsData>();
            //v.push( new GraphicsBitmapFill(bd) );
            //v.push( drawRect( 200, 200 ) );
            //v.push( new GraphicsEndFill() );
            v.push( new GraphicsBitmapFill(alphaB,null,true,true) );
            v.push( drawRect( 256, 256 ) );
            v.push( new GraphicsEndFill() );
            
            graphics.drawGraphicsData( v );
        }
    }
}

import flash.display.GraphicsPath;

function drawRect(  width: Number, height: Number, x: Number = 0, y: Number = 0 ): GraphicsPath {
    var p: GraphicsPath = new GraphicsPath();
    p.moveTo( x, y );
    p.lineTo( x+width, y );
    p.lineTo( x+width, y+height );
    p.lineTo( x, y+height );
    p.lineTo( x, y );
    return p;
}


var trace: Function = Wonderfl.log;