Simple Drawing in AS3 revisited
This code draws with a predefined brush “brush” onto the screen when the mouse is down and moving. A colour picker allows you to modify the colour.
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.geom.ColorTransform
import fl.controls.ColorPicker;
import fl.events.ColorPickerEvent;
var ct:ColorTransform = new ColorTransform();
var myBitmapData:BitmapData = new BitmapData(200,200, false, 0xFFCCCCCC);
var myBitmap:Bitmap = new Bitmap(myBitmapData,”auto”,false);
var canvas:Sprite = new Sprite();
var size:Number = brush.width;
var offSet:Number = Math.floor(size/2);
var translateMatrix:Matrix = new Matrix()
var brushData:BitmapData = new BitmapData(int(brush.width), int(brush.height), true, 0×00FF0000);
init();
function init(){
brushData.draw(brush, new Matrix, new ColorTransform, “normal”, brushData.rect, false);
brushColour.addEventListener(ColorPickerEvent.CHANGE,updateColour);
canvas.addChild(myBitmap);
addChild(canvas)
canvas.addEventListener(MouseEvent.MOUSE_DOWN, startDraw);
canvas.addEventListener(MouseEvent.MOUSE_UP, endDraw);
canvas.addEventListener(MouseEvent.ROLL_OUT, endDraw);
brushColour.selectedColor = 0xFFFFFF;
}
function updateColour(e:Event){
ct.color = brushColour.selectedColor;
}
function startDraw(event:MouseEvent):void {
canvas.addEventListener(MouseEvent.MOUSE_MOVE, drawPoint);
}
function endDraw(event:MouseEvent):void {
canvas.removeEventListener(MouseEvent.MOUSE_MOVE, drawPoint);
}
function drawPoint(event:MouseEvent):void {
translateMatrix.tx = canvas.mouseX-offSet;
translateMatrix.ty = canvas.mouseY-offSet;
myBitmapData.draw(brushData,translateMatrix,ct,null,null,false)
}
Tags: AS3, BitmapData