https://linen.dev logo
```hx package; import openfl.display.Shape; impor...
# openfl
t
Copy code
hx
package;

import openfl.display.Shape;
import openfl.display.Graphics;
import openfl.geom.Point;
import openfl.events.Event;
import openfl.events.MouseEvent;
import openfl.display.BitmapData;
import openfl.display.Bitmap;
import openfl.display.Sprite;

class Main extends Sprite
{

    var canvasWidth:Int = 400;
    var canvasHeight:Int = 400;
    var canvasColor:Int = 0xFFFFFFFF;
    var canvas:Shape;
    var brushColor:Int = 0xFF000000;

    var downMousePos:Point;
    var curMousePos:Point;

    public function new()
    {
        super();
        init();
        addEventListeners();
    }
    
    private function onUpdate(ev:Event) {
    }

    private function onMouseDown(ev:MouseEvent) {
        downMousePos = new Point(ev.localX, ev.localY);
        canvas.graphics.moveTo(downMousePos.x, downMousePos.y);
    }

    private function onMouseMove(ev:MouseEvent) {
        if (downMousePos == null) return;
        canvas.graphics.lineTo(ev.localX, ev.localY);
        downMousePos.setTo(ev.localX, ev.localY);
    }

    private function onMouseUp(ev:MouseEvent) {
        downMousePos = null;
    }

    private function init() {
        canvas = new Shape();
        canvas.graphics.drawRect(0, 0, canvasWidth, canvasHeight);
        canvas.graphics.lineStyle(3, brushColor, 1, false, NORMAL, null, null, 3);
        addChild(canvas);
    }

    private function addEventListeners() {
        addEventListener(Event.ENTER_FRAME, onUpdate);
        addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
        addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
        addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
    }
}
2 Views