Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.text.TextFieldAutoSize;
- import flash.text.TextField;
- import flash.display.Bitmap;
- import flash.display.BitmapData;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- /**
- * @author perry
- */
- public class Main extends Sprite
- {
- private var bmpd:BitmapData;
- private var canvas:Bitmap;
- private var drawColor:int = 0xff0000;
- private var fillColor:int = 0x00ffff;
- private var drawing:Boolean;
- public function Main()
- {
- init();
- }
- private function init():void
- {
- bmpd = new BitmapData( stage.stageWidth, stage.stageHeight, false, 0x00ff00 );
- canvas = new Bitmap( bmpd );
- this.addChild( canvas );
- var hitAreas:Sprite = new Sprite();
- hitAreas.graphics.beginFill( 0x0000ff, 0 );
- hitAreas.graphics.drawRect( 0, 0, canvas.width, canvas.height );
- addChild( hitAreas );
- addButtons();
- drawing = true;
- hitAreas.addEventListener( MouseEvent.MOUSE_DOWN, startDrawing );
- hitAreas.addEventListener( MouseEvent.MOUSE_UP, stopDrawing );
- }
- private function addButtons():void
- {
- var pencil:Sprite = new Sprite();
- var fill:Sprite = new Sprite();
- var ptf:TextField = new TextField();
- ptf.autoSize = TextFieldAutoSize.LEFT;
- ptf.selectable = false;
- ptf.text = "DRAW";
- pencil.addChild(ptf);
- var ftf:TextField = new TextField();
- ftf.autoSize = TextFieldAutoSize.LEFT;
- ftf.text = "FILL";
- ptf.selectable = false;
- fill.addChild(ftf);
- pencil.graphics.beginFill( 0x888888);
- pencil.graphics.drawRect(0, 0, ptf.width + 5, ptf.height + 5);
- pencil.graphics.endFill();
- fill.graphics.beginFill( 0x888888);
- fill.graphics.drawRect(0, 0, ftf.width + 5, ftf.height + 5);
- fill.graphics.endFill();
- addChild( pencil);
- fill.y = pencil.height + 10;
- addChild(fill);
- pencil.buttonMode = true;
- fill.buttonMode = true;
- pencil.addEventListener(MouseEvent.MOUSE_DOWN, pencilDownHandler );
- fill.addEventListener(MouseEvent.MOUSE_DOWN, fillDownHandler );
- }
- private function startDrawing( e:MouseEvent ):void
- {
- if(drawing)
- stage.addEventListener( Event.ENTER_FRAME, loop );
- else
- {
- bmpd.floodFill(mouseX, mouseY, fillColor);
- canvas.bitmapData = bmpd;
- }
- }
- private function stopDrawing( e:MouseEvent ):void
- {
- if(drawing)
- stage.removeEventListener( Event.ENTER_FRAME, loop );
- }
- private function pencilDownHandler( e:MouseEvent ):void
- {
- drawing = true;
- }
- private function fillDownHandler( e:MouseEvent ):void
- {
- drawing = false;
- }
- private function loop( e:Event ):void
- {
- bmpd.setPixel(mouseX, mouseY, drawColor );
- bmpd.setPixel(mouseX+1, mouseY, drawColor );
- bmpd.setPixel(mouseX+1, mouseY+1, drawColor );
- bmpd.setPixel(mouseX, mouseY+1, drawColor );
- canvas.bitmapData = bmpd;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment