Skip to content

Instantly share code, notes, and snippets.

@brodavi
Created December 14, 2012 05:57
Show Gist options
  • Save brodavi/4283002 to your computer and use it in GitHub Desktop.
Save brodavi/4283002 to your computer and use it in GitHub Desktop.
Attempt at simple Haxe painting.. but..
package;
import nme.Lib;
import nme.display.Bitmap;
import nme.display.BitmapData;
import nme.display.Sprite;
import nme.events.MouseEvent;
class TestScene extends Sprite
{
private var _mouseDown:Bool;
private var _lastX:Float;
private var _lastY:Float;
private var _sketch:Sprite;
private var _sketcharea:Bitmap;
private var _screenW:Float;
private var _screenH:Float;
private var _color:Int;
private var _lineDiameter:Float;
public function new ()
{
super ();
_mouseDown = false;
_lastX = 0.0;
_lastY = 0.0;
_screenW = Lib.current.stage.stageWidth;
_screenH = Lib.current.stage.stageHeight;
_color = 0x00ff00;
_lineDiameter = _screenW*0.007;
_sketch = new Sprite();
_sketch.cacheAsBitmap = true;
_sketcharea = new Bitmap(new BitmapData(Std.int(_screenW*0.7), Std.int(_screenH*0.9), true));
_sketcharea.alpha = 0;
_sketch.addChild(_sketcharea);
_sketch.graphics.beginFill(0x222222);
_sketch.graphics.drawRect(0,0,_sketch.width,_sketch.height);
_sketch.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
_sketch.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
_sketch.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove);
_sketch.addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);
resize();
addChild(_sketch);
}
private function resize()
{
_screenW = Lib.current.stage.stageWidth;
_screenH = Lib.current.stage.stageHeight;
_sketch.width = _screenW * 0.7;
_sketch.height = _screenH * 0.7;
_sketch.x = _screenW * 0.5 - _sketch.width*0.5;
_sketch.y = _screenH * 0.5 - _sketch.height*0.5;
}
private function handleMouseDown(e)
{
_mouseDown = true;
_lastX = e.localX;
_lastY = e.localY;
_sketch.graphics.lineStyle(_lineDiameter, _color);
}
private function handleMouseUp(e)
{
_mouseDown = false;
}
private function handleMouseOut(e)
{
_mouseDown = false;
}
private function handleMouseMove(e)
{
if (!_mouseDown) return;
_sketch.graphics.moveTo(_lastX, _lastY);
_sketch.graphics.lineTo(e.localX, e.localY);
_lastX = e.localX;
_lastY = e.localY;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment