如何:AS3上的动态var名称更改

时间:2011-01-06 02:22:42

标签: flash actionscript-3

可以使用flash动态更改变量的名称是AS3吗?我的意思是,创建例如10个变量,其中一个根名称如:myvar然后递增一个数字,如myvar0,myvar1,myvar2等。

我刚才在AS2中用这段代码实现了这个目标:

for (i = 0; i < 5; i++)
{
    var mc = _root.attachMovie("my_square", "my_square_"+i, i);
    mc._x = i * 50;
}

但是现在我在AS3中并且需要复制的是这个:

var caja1:HTMLTextBlock = new HTMLTextBlock();

如何在FOR,caja1,caja2,caja3和sp。

中生成

感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

嘿多明戈, 我已经离开AS2一段时间了,所以我不会完全确定这是你正在寻找的,但我认为是。

var myObjects:Object = {};

for(var i:Number = 0; i<10; i++)
{
    myObjects["caja"+i]=new HTMLTextBlock();
    addChild(myObjects["caja"+i]); //if using Flex 4 containers use addElement(myObjects["caja"+i]);
    myObjects["caja"+i].x=i*50; //assuming here container has an absolute layout
}

你在这里做的是创建一个新对象,它具有动态属性来解析AS3中的属性,你可以使用(点运算符)myObject.something或(关联数组?)myObject [“something”]和它也会一样。

答案 1 :(得分:1)

我认为实现这一目标的一种非常简单和干净的方法是创建一个数组。

var caja:Array = new Array();

for (i = 0; i < 5; i++)
{
    caja[i] = new HTMLTextBlock();
}

请记住,数组中的第一个条目以0开头,而不是1(即caja [0])。

希望这会有所帮助:)