Using transparent bitmapData with graphics
It uses
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;