按索引号动态调用数组值

时间:2013-05-02 13:24:40

标签: actionscript-3

我无法动态地使用索引号调用数组的值。 我想要做的是每次for循环调用时动态获取movieclip的名称。 我的代码:

public var allItemsUnlockedTC:Array = new Array("Itemwrench", "Itemsc", "Itemvoltmeter", "Itemgloves", "Itemstirespray");

for(var TCitems:int = 0; TCitems < allItemsUnlockedTC.length; TCitems++)
            {
                trace("TCitems length: " + TCitems);
                trace("Values: " + allItemsUnlockedTC.valueOf([TCitems]));
                /*getChildByName(allItemsUnlockedTC.valueOf(TCitems) as MovieClip).x = par.toolCloset.kast_1.slotTC1;//getChildByName("slotTC" + (TCitems + 1)).x + 400;
                getChildByName(allItemsUnlockedTC.valueOf(TCitems) as MovieClip).y = par.toolCloset.kast_1.slotTC1;//getChildByName("slotTC" + (TCitems + 1)).y + 245;
                getChildByName(allItemsUnlockedTC.valueOf(TCitems) as MovieClip).gotoAndStop(2);
                //getChildByName(allItemsUnlockedTC.valueOf(TCitems)).name = ("slotTC" + (TCitems + 1));
                NotinventoryParentTC.addChild(getChildByName(allItemsUnlockedTC.valueOf(TCitems) as MovieClip));*/
            }

不是按升序逐个获取值,而是每次for循环调用时都会立即获取所有值。

如何使用for循环通过索引调用值?

提前致谢,

米兰

没关系,我解决了。

trace("Values: " + allItemsUnlockedTC[TCitems]);

愚蠢的问题xS

2 个答案:

答案 0 :(得分:0)

只需使用for each...in循环。

 for each(var TCitems:String in allItemsUnlockedTC)
 {
            trace("TCitems length: " + allItemsUnlocked.indexOf(TCitems));
            trace("Values: " + TCitems);
 }

请注意,这只是我的头脑,代码可能不完全正确。

答案 1 :(得分:0)

您想要获取特定索引处的项目。在actionscript中,这样做:yourArray[index]。请勿使用valueOf

所以它看起来像:

trace("Values: " + allItemsUnlockedTC[TCitems]);