0

こんにちはstackoverflowユーザー、私は魔女に質問があります。答えが見つかりません。この小さな問題を本当に解決する必要があります。アイデアは同じボタンでいくつかの円を作成することですが、今はそれぞれに独自のプロパティを持たせる必要があるのでプログラム中に私はそれらを編集することができます.Childのプロパティ、私の場合は円の色、およびその中にあるテキストを使用して配列を作成することが可能であると思います.

円を作成するコードは次のとおりです。

if (i<9 && mouseX<400 && mouseY<350 && mouseX>15 && mouseY>15 && event.target.name!=add_s )
        {
        i++;
        q=i;
        var btn:Sprite = new Sprite();  
        btn.graphics.beginFill(0x0099FF, 1);
        btn.graphics.drawCircle(mouseX, mouseY, 15);
        btn.graphics.endFill();
        cordX[i]=mouseX;
        cordY[i]=mouseY;
        btn.mouseEnabled=true;
        var s:String = String(q);
        btn.name=s; 
        var textField = new TextField();
        textField.mouseEnabled=false;
        textField.text = i;
        textField.width = 10; 
        textField.height = 17;
        textField.x = mouseX-5; // center it horizontally
        textField.y = mouseY-8; // center it vertically
        btn.addChild(textField);
        this.addChild(btn);
        }

私の質問は次のとおりです。チャイルドの配列を作成することは可能ですか?それで、各円のパラメーターにアクセスできます。助けてください

たとえば、 ---> btn.graphics.beginFill(0x0099FF,1); の代わりに btn[1].graphics.beginFill(0x0099FF,1); になります。ここで、btn[1] は最初の円であり、将来的にはこのパラメーターを編集できます...

4

1 に答える 1

1
// create var for number of buttons you want to create
var totalNumberOfButtons:Number = 10;    

// create array to store buttons
var buttonArray:Array = new Array();

// loop through array and create button params
for( var i:int = 0; i < totalNumberOfButtons; i++ )
{
    q=i;
    var btn:Sprite = new Sprite();
    btn.graphics.beginFill(0x0099FF, 1);
    btn.graphics.drawCircle(mouseX, mouseY, 15);
    btn.graphics.endFill();
    cordX[i]=mouseX;
    cordY[i]=mouseY;
    btn.mouseEnabled=true;

    // you don't really need this name now since you'll be referencing your buttons though an array now
    //var s:String = String(q);
    //btn.name=s;

    var textField = new TextField();
    // you'll want to give your Textfield a name so you can reference it later
    textField.name = 'tf_' + q;
    textField.mouseEnabled=false;
    textField.text = i;
    textField.width = 10; 
    textField.height = 17;
    textField.x = mouseX-5; // center it horizontally
    textField.y = mouseY-8; // center it vertically
    btn.addChild(textField);

    // add created button to buttonArray
    buttonArray[ i ].push( btn );

    this.addChild(btn);
}

buttonArray のボタンにアクセスします。

var currentIndex:Number = 0;  // use this variable to keep track of which index you'll need at any given time
var currentButton:Sprite = buttonArray[ currentIndex ];

次のようなボタンのテキストフィールドのテキストを取得できます。

var currentButtonText:String = buttonArray[ currentIndex ]['tf_' + currentIndex].text;

ボタンのテキストフィールドのテキストを次のように設定します。

buttonArray[ currentIndex ]['tf_' + currentIndex].text = 'hello world';
于 2013-09-17T18:48:16.080 に答える