我无法动态地使用索引号调用数组的值。 我想要做的是每次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
答案 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]);