我有一些问题与AS3对象数组。我试图建立一个库存系统,用户可以左右导航(正在工作)。当用户按下ENTER时,该项目应该装备。开关AS3对象问题
我打算使用switch
和case
装备物品,因为游戏中只有8件物品。使用跟踪时我得到结果[object purpleSword]
,但我的switch
没有得到任何结果或触发任何事情。我需要equipItem
函数来找到在arrayItems
中找到的purpleSword
。当从地板上拿起时,物品会被添加到arrayItems
。
有没有人有使用对象的RPG库存系统的任何提示?提前谢谢了。
public var arrayItems: Array = new Array();
if (keyEvent.keyCode == Keyboard.ENTER) {
if (currentScreen == "inventory") {
if(inventoryCurrent >= 0) {
var actualCurrentItem = inventoryCurrent - 1;
equipItem(arrayItems[actualCurrentItem]);
}
}
}
public function equipItem(itemNumber) {
switch(itemNumber) {
case "purpleSword":
trace("equip purple sword");
break;
}
}
如果您的数组中的项目不是字符串,那么您的switch语句将无法找到它们。在switch语句中,您正在检查参数itemNumber是否等于字符串“purpleSword”。如果itemNumber不是一个字符串,或者是一个包含其他内容的字符串,那么您将永远不会遇到这种情况。 – DodgerThud
AS3有一个类型系统,你应该用它来帮助你理解你自己的错误,并帮助他人理解你的代码(就像我们一样)。 – Aaron