我正在尝试使用我正在制作的游戏中的数组制作库存。
我需要的是一种将数字与变量组合在一起的方法,如下所示:
itemBoxNumber = "itemBox" + currentItemBox;
//In this case itemBoxNumber would say itemBox1
我可以用来替换itemBox1。
function itemsMenuUpdate():void
{
for (var a:int = 0; a<maxInventory; a++){
var currentItemBox:Number = 1;
if(~inventory.indexOf("Potion")){
mainMenu.itemBox1.gotoAndStop("Potion");
}
if(~inventory.indexOf("Hi-Potion")){
mainMenu.itemBox1.gotoAndStop("Hi-Potion");
}
}
}
我只能找到AS2的工作方法。任何帮助都表示赞赏。
答案 0 :(得分:0)
您可以通过名称(您需要先设置)检索子显示对象。所以:
var itemBoxNumber = "itemBox" + currentItemBox;
mainMenu.getChildByName(itemBoxNumber).gotoAndStop("Potion"); //TODO ensure the child was given such a name
答案 1 :(得分:0)
创建一个LabelNumber类,它具有String标签和Number。然后,您可以添加一个方法,该方法返回标签的String和组合的数字,同时保持值彼此独立。
答案 2 :(得分:0)
如果我没记错,你可以从AS3中的String
调用一个方法。
例如,如果您想在itemBox1
上调用方法mainMenu
,您可以这样做:
mainMenu["itemBox1"]
与以下内容相同:
mainMenu.itemBox1
所以在你的例子中你可以这样做:
mainMenu[itemBoxNumber].gotoAndStop("Potion");