我有一些問題與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