AS3阵列问题

时间:2015-12-17 23:14:17

标签: arrays actionscript-3 flash

我是AS3新手,我正在开展第一场比赛。

所以我有一个部队阵容,从商店购买时会添加。

public var myTroops: Array = [{type: "lightInfantry", hp: "100", def: "10"},
{type: "lightInfantry", hp: "100", def: "10"},
{type: "heavyInfantry", hp: "100", def: "10"}];

我需要找到某种类型的步兵发生多少次然后追溯它,我找到了其他问题寻求帮助,但不是多阵列。我怎么能得到这个?基本上要求一些帮助,如何编写代码,以返回玩家已经拥有的每个步兵的数量。

提示和回答非常感谢。提前致谢。

1 个答案:

答案 0 :(得分:3)

首先,让你的生活更轻松,并制作一些常量。这样可以对拼写错误进行编译时检查,并使其只需要输入一次字符串。

package {
   public class TROOP_TYPE {
       public const LIGHT_INFANTRY:String = "lightInfantry";
       public const HEAVY_INFANTRY:String = "heavyInfantry";
   }
}

现在,你可以创建一个辅助函数来计算某些类型:

public function countTroops(type:String):int {
    var ctr:int = 0; 

    //loop through the troops array
    for(var i:int=0;i<myTroops.length;i++){
        //if the current troop matches the type passed, increment the counter
        if(myTroops[i].type == type) ctr++;
    }

    //return the value
    return ctr;
}

然后这样称呼它:

var lightCount:int = countTroops(TROOP_TYPE.LIGHT_INFANTRY);