0

私は新しいフラッシュとアクション スクリプトです。ここに問題があります。簡単なアプリケーションを作成しました。ステージに追加したアイテムは 2 つだけです。ムービー クリップ オブジェクトとボタン オブジェクト。ムービー クリップ オブジェクトには、描画するように設定されたマウス イベント リスナーがあります。しかし、描画すると、ムービークリップオブジェクトの後ろ(ステージ上)に線が描画されます。オブジェクト上に描画したいです。ここに私のコードがあります

var write: Boolean;

write = false;
board.addEventListener(MouseEvent.MOUSE_DOWN, startWriting);
board.addEventListener(MouseEvent.MOUSE_MOVE, continueWriting);
board.addEventListener(MouseEvent.MOUSE_UP, stopWriting);
board.addEventListener(MouseEvent.MOUSE_OUT, stopWriting);
btnHide.addEventListener(MouseEvent.MOUSE_DOWN, hideBoard);

var g:Graphics = graphics;
g.lineStyle(1, 0x0000ff);   

function startWriting(e:MouseEvent):void {
    g.moveTo(mouseX, mouseY);
    write = true;
}

function continueWriting(e:MouseEvent):void {
    if(write) {
        g.lineTo(mouseX, mouseY);
    }
}

function stopWriting(e:MouseEvent):void {
    write = false;
}

function hideBoard(e:MouseEvent):void {
    if (board.visible){
        board.visible = false;
    }
    else {
        board.visible = true;
    }
}

問題は、ムービー クリップ オブジェクトにどのように描画するかです。

4

1 に答える 1

0

各ムービークリップには、独自のグラフィックス プロパティがあります。追加したコンテンツは、常に現在のムービークリップ グラフィックスの前に表示されます。

解決策は、 Shape を MovieClip の子として追加するだけです:

var shape : Shape = new Shape;
addChild( shape );
var g:Graphics = shape .graphics;
g.lineStyle(1, 0x0000ff);   

function startWriting(e:MouseEvent):void {
    g.moveTo(mouseX, mouseY);
    write = true;
}

function continueWriting(e:MouseEvent):void {
    if(write) {
        g.lineTo(mouseX, mouseY);
    }
}
于 2013-09-26T14:21:20.627 に答える