我是AS3的新手。我一直在试图解决这个问题。我有一个网格系统。每个网格块都是实例化的row1,row2等
我有一些代码重复使用for添加子项(var i:int = 0; i< 81; i ++)。
在最后的块中,它添加了row.addChild(item);是不是有办法使行+ i所以它会自动命名该行并将子项添加到其中?我甚至都没有提到这两本书,尽管他们使用某种[i]或(i)作为其他东西。
任何帮助都会得到真正的赞赏,因为我已经坚持了几天这个问题,而我的互联网搜索只是不适合这个问题。
这是我的代码:
for (var i:int = 0; i < 81; i++) {
var item:MovieClip = new MovieClip();
//item.fnumber = i;
item.ftype = Math.round(Math.random() * 5 + 1);
if (item.ftype == 1) {
var item:MovieClip = new item(); item.fnumber = i; item.fcolor = ""; item.ftype = 1}
if (item.ftype == 2) {
var item:MovieClip = new item2(); item.fnumber = i; item.fcolor = ""; item.ftype = 2}
if (item.ftype == 3) {
var item:MovieClip = new item3(); item.fnumber = i; item.fcolor = ""; item.ftype = 3}
if (item.ftype == 4) {
var item:MovieClip = new item4(); item.fnumber = i; item.fcolor = ""; item.ftype = 4}
if (item.ftype == 5) {
var item:MovieClip = new item5(); item.fnumber = i; item.fcolor = ""; item.ftype = 5}
if (item.ftype == 6) {
var item:MovieClip = new item6(); item.fnumber = i; item.fcolor = ""; item.ftype = 6}
row.addChild(item);
item.flevel = 1;
答案 0 :(得分:0)
var rows:Array = [];
var mcs:Array = [item, item2, item3, item4, item5, item6];
for(var n:int = 0; n<10; n++) {
var row:Sprite = new Sprite();
for (var i:int = 0; i < 81; i++) {
var ftype = Math.round(Math.random() * 5 + 1);
var item:MovieClip = new mcs[ftype]();
item.fnumber = i;
item.fcolor = "";
item.ftype = ftype;
item.flevel = 1;
row.addChild(item);
}
addChild(row);
rows.push(row);
}
现在,您可以使用rows[i]
访问行。
答案 1 :(得分:0)
如果要处理计算名称的组件,请使用this[computedName]
方法。但是,请确保您不会以null或未定义的方式查询,如果您错误地命名了组件,就会发生这种情况。改变Baris的代码:
var rows:Array = [];
var mcs:Array = [item, item2, item3, item4, item5, item6];
for(var n:int = 1; n<10; n++) {
var row:MovieClip=this["row"+n]; // <-- this is the trick
for (var i:int = 0; i < 81; i++) {
var ftype = Math.round(Math.random() * 5 + 1);
var item:MovieClip = new mcs[ftype]();
item.fnumber = i;
item.fcolor = "";
item.ftype = ftype;
item.flevel = 1;
row.addChild(item);
}
// addChild(row); this is not needed, as you have your rows already on screen
rows.push(row);
}
Baris有一些技巧可供你学习和掌握,比如创建一个随机选择的类数组。