2014-09-26 67 views
0

在我具有正方形导出为级“cuad”上框架1动作3:如何访问在循环中创建的数组元素动态

的FLA文件的库我想创建Array有100个方格,以便日后移动

所以我这样做:

for (var i:uint = 0; i<100;i++) 
{ 
var cuad_mc = new cuad(); 
addChild(cuad_mc);      
myArray.push("cuad_mc"); 
trace(myArray[i]); 
} 

我有一个运行时错误

+0

您正在将字符串推入数组中,而不是“cuad”对象。除此之外,代码看起来不错,向我们展示如何创建数组本身。 – DodgerThud 2014-09-26 11:03:04

+0

var myArray = new Array(); – 2014-09-26 11:34:03

+0

也看起来不错,请发布整个错误 – DodgerThud 2014-09-26 11:36:12

回答

3

您遇到的错误是

Error #1069: Did not find alpha propiety in the String and there is not any value predetermined

的问题来自于您的线路

myArray.push("cuad_mc"); 

你在做什么这里正在推动一个String对象到您的阵列,而不是你想要的cuad对象。字符串对象没有Alpha值或x值。

你想要做什么是

myArray.push(cuad_mc); 

cuad_mc(不带“引号),就是你刚刚创建的对象的引用。

这应该解决您的问题。我还建议使用矢量而不是数组,如果你只需要存储一个类型的对象是这样的:

var myArray:Vector<cuad> = new Vector<cuad>(); 
for(var i:int=0;i<100;i++){ 
    var cuad_mc:cuad = new cuad(); 
    addChild(cuad_mc); 
    myArray.push(cuad_mc); 
    trace(myArray[i]); 
} 

载体就像数组,但他们只允许一个特定类型,这样就不会出现像你这样的情况。

+0

我觉得我有一个错误:import com.greensock。*; import com.greensock.easing。*; var myArray = new Array(); (var i:uint = 0; i <100; i ++) \t \t \t var cuad_mc = new cuad(); \t \t \t addChild(cuad_mc); \t \t \t myArray.push(cuad_mc); \t \t \t trace(myArray [i]); \t \t \t \t \t \t TweenMax.to(myArray的[30],1,{X:50,α-:1,改写:真}); \t \t \t \t \t \t \t } – 2014-09-26 12:09:11

+0

你已经创造了他们之前,你无法操纵的对象。当循环仍然在1(我是0)时,你尝试操作数组中的对象30,它还没有创建。 – DodgerThud 2014-09-26 12:13:54

+0

好的,非常感谢。我会把它做出来的循环 – 2014-09-26 15:16:14