可以使用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。
中生成感谢您的帮助!
答案 0 :(得分:5)
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])。
希望这会有所帮助:)