0

ペイントアプリケーションがあります。レイヤー(正方形のムービークリップ)を置きたいのですが、その上に描画したいです。今まではペイントできませんでしたが、ムービークリップの子を追加しようとすると、そのムービークリップの上に描画できません。このようなものを作る方法はどれですか?これは私のコードです:

import flash.display.Sprite;

var myThick=10;
var currentColor = 0X000000;
var myCanvas:Sprite;

init();

function init():void {
    drawCanvas();
    var clearSwatch:Sprite = new Sprite();
    clearSwatch.graphics.beginFill(0xFFFFFF);
    clearSwatch.graphics.lineStyle(2, 0x000000);
    clearSwatch.graphics.drawCircle(30, 370, 20);
    clearSwatch.graphics.endFill();
    addChild(clearSwatch);
    clearSwatch.buttonMode = true;
    clearSwatch.addEventListener(MouseEvent.CLICK, clearCanvas);//clear
    }

function drawCanvas():void {
    myCanvas = new Sprite();
    myCanvas.graphics.beginFill(0xF0F0F0);
    myCanvas.graphics.drawRect(60, 20, stage.stageWidth-80, stage.stageHeight+40);
    myCanvas.graphics.endFill();
    myCanvas.graphics.lineStyle(myThick, currentColor);
    addChild(myCanvas);
    myCanvas.addEventListener(MouseEvent.MOUSE_DOWN, startDraw);
  //stage.addEventListener(MouseEvent.MOUSE_UP, stopDraw);
    myCanvas.buttonMode = true;
}

function startDraw(event:MouseEvent):void {
    myCanvas.graphics.moveTo(event.localX, event.localY);
    myCanvas.addEventListener(MouseEvent.MOUSE_MOVE, paintLine);
}

function stopDraw(event:MouseEvent):void {
    myCanvas.removeEventListener(MouseEvent.MOUSE_MOVE, paintLine);
}

function paintLine(event:MouseEvent):void {
    myCanvas.graphics.lineTo(event.localX, event.localY);
    event.updateAfterEvent();
}
function clearCanvas(event:MouseEvent):void {
    myCanvas.graphics.clear();
    drawCanvas();
}

どうすればそれを機能させることができますか?ありがとう!

4

1 に答える 1

1

マウス移動リスナーと一緒に両方のリスナーをステージに追加しますが、myCanvas.

stage.addEventListener(MouseEvent.MOUSE_DOWN, startDraw);
function startDraw(event:MouseEvent):void {
    myCanvas.graphics.moveTo(event.localX, event.localY);
    myCanvas.addEventListener(MouseEvent.MOUSE_MOVE, paintLine);
}

等。

于 2013-10-29T11:06:36.843 に答える