2012-07-08 86 views
0

我試圖運行這段代碼時出現「無法將undefined轉換爲對象」錯誤。我不是程序員,幾乎沒有代碼,因此我的問題可能是非常愚蠢的/無法回答的,我對此深表歉意。Java腳本錯誤 - 無法將undefined轉換爲對象

代碼:

if (path == F[0]) 
    { 
     //go N 
     if (pointAy > 0) 
     { 
      if (!(PS.BeadData(pointAx, pointAy - 1) === "blocked")) 
      { 
       // Set bead to Previous State 
       PS.BeadColor(pointAx, pointAy, previous_bead_NPC[NPCid][2]); 
       PS.BeadData(pointAx, pointAy, 0); 
       PS.BeadGlyph(pointAx, pointAy, " ");     
       // Increment 
       pointAy -= 1; 
       // Place NPC 
       MakeNPC(pointAx, pointAy, NPC[NPCid][2], NPC[NPCid][3], NPC[NPCid][4], NPC[NPCid][5], 1); 
      } 
     } 
    } 

真的不能告訴這是否足以找到答案你 - 我可以發佈更多的代碼,如果這將有助於。

也許有一些普通的答案,這樣的錯誤是一個正常的程序員會知道的,但像我這樣的noob會不知情?

UPDATE 好吧,通過一步一步的執行,我發現錯誤在不同的函數中彈出,即使禁用上面的一段代碼也不會彈出錯誤。這是使錯誤彈出功能:

PS.Tick = function() 
{ 
"use strict"; 
for (var NPCid = 0; NPCid < 10; NPCid++) 
    { 
     NPCAI(NPCid); 
    }; 
}; 

該功能被稱爲每秒鐘它調用AI的邏輯功能,通過提供NPCid到AI功能的網格上移動10個NPC。腳本在這裏失敗,但並非總是如此 - 通常一個或兩個NPC會邁出一步,然後纔會失敗。

+2

哪條線路出現此錯誤? – 2012-07-08 12:48:23

+0

可能是'PS'是'undefined'。 – Pointy 2012-07-08 12:54:03

+0

PS被定義......我想。它是我沒有寫的引擎的一部分,它可以在其他地方使用。 – DerpTomi 2012-07-08 12:58:34

回答

0

如果您使用的是Chrome或Firebug,則可以瀏覽JavaScript代碼。在Chrome上,打開工具圖標(扳手位於右上角),然後從下拉菜單和「開發人員工具」中選擇「工具」,啓用開發人員工具。在底部,您應該在屏幕下方看到一個用於腳本的按鈕。點擊它並導航到你的頁面。當你看到你的JavaScript文件打開它並在「if」語句中放置一個斷點時。重新加載您的頁面,然後查看調試器停止代碼時PS和NPC的值。

相關問題