0

你好stackoverflow用户,我有一个问题我找不到答案,我真的需要解决这个小问题,这个想法是用同一个按钮创建一些圈子,但现在我需要他们每个人都有自己的属性所以在程序中我可以编辑它们,我想如果可以用孩子的属性制作和排列,在我的例子中是圆圈的颜色,以及里面的文字。

我如何创建圆圈的代码是:

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);
        }

我的问题是:是否可以制作一个 Childs 数组,以便我可以访问每个圆圈参数。请帮忙

例如代替 ---> 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 回答