Hello 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,因此我可以访问每个圈子参数。请帮忙
例如代替---&gt; btn.graphics.beginFill(0x0099FF,1);是btn [1] .graphics.beginFill(0x0099FF,1);其中btn [1]是第一个圆圈,将来我可以编辑这个参数...
答案 0 :(得分: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';