0

わかりました。アイデアはシンプルです。ステージ上のボタンのセットです。ボタンをクリックして色を変更し、描画します。私はフラッシュとアクションスクリプトを学ぼうとしていますが、問題がどこにあるのかよくわかりませんが、これを行う方法がわかりません。

package {
import flash.display.Sprite;
import flash.events.MouseEvent;

public class Artist extends Sprite {
    public var drawing:Boolean;
    public var colorArray:Array;
    public var dc;

    public function colors() {
        colorArray = ["0xFF0000","0xFFA500","0xFFFF00","0x00FF00","0x0000FF","0x4B0082","0x8F00FF","0xFF69B4","0x00CCFF","0x008000","0x8B4513"];

        for (var i:int = 0; i < colorArray.length; i++) {
        this["btn_" + i].addEventListener(MouseEvent.CLICK, set_color);
        }
    }

    public function set_color(e:MouseEvent):void {
        dc = colorArray;
    }

    public function Artist() {
        graphics.lineStyle(10,dc);
        drawing = false;
        stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
        stage.addEventListener(MouseEvent.MOUSE_MOVE, draw);
        stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing);
    }

    public function startDrawing(event:MouseEvent):void {
        graphics.moveTo( mouseX, mouseY);
        drawing = true;
    }

    public function draw(event:MouseEvent) {
        if(drawing) {
            graphics.lineTo(mouseX,mouseY);
        }
    }

    public function stopDrawing(event:MouseEvent) {
        drawing = false;
    }
}

}

4

2 に答える 2

1

ボタン名でインデックスを取得し、クリックしたインデックスを使用して色を割り当てることができます。

for (var i:int = 0; i < colorArray.length; i++) {
    this["btn_" + i].addEventListener(MouseEvent.CLICK, set_color);
}

public function set_color(e:MouseEvent):void {
    // Get the button name and fetch it's index
    var index:int = int(e.currentTarget.name.substring(4));
    dc = colorArray[index];
}

また、メソッドでアクセスする場合は、colorArray がクラス全体で認識されていることを確認してください。colorsLukasz が言っ たように、メソッドの外で定義するだけです。protected var colorArray:Array色には文字列では0xFF0000なく数値を使用します。"0xFF0000"

于 2012-11-27T09:42:20.747 に答える
0

Button のプロパティを使用tagして、ボタン自体に色 (または色のインデックス) を配置し、クリック ハンドラで を介してこのタグを読み取りますevent.sender.tag
カラー配列のタグ (および別の配列の名前) を使用してボタンを生成することもできます。

于 2012-11-27T07:54:17.647 に答える