【发布时间】:2016-02-12 11:41:25
【问题描述】:
我在使用 AS3 对象数组时遇到了一些问题。我正在尝试制作一个库存系统,用户可以左右导航(正在工作)。当用户按下 ENTER 时,该项目应该装备。
我打算使用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 不是字符串,或者是带有其他内容的字符串,那么你永远不会遇到这种情况。
-
AS3 有一个类型系统,你应该使用它来帮助你理解自己的错误,并帮助其他人理解你的代码(比如我们)。
标签: actionscript-3 flash