2014-06-05 46 views
0

一直在一個名爲ChemoBlue遊戲,而現在似乎並不能擺脫這種錯誤的:Actionascript計時器錯誤

編輯:我改變了幾行代碼,現在的錯誤是這樣的:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at ChemoBlueSetup/levelUp()[/Users/raphaelhennessy/Desktop/STS/Gold Cinema ChemoBlue/ChemoBlueSetup.as:71] 

我曾經有更多的錯誤拋給我,但現在這是唯一的一個。下面是創建錯誤的代碼。 編輯:我做了一些調試,似乎錯誤來自這裏:提前

public function levelUp(evt:MouseEvent):void 
     { 
      if (level == 1) 
      { 
       elementName.text = ("water"); 
       gotoAndPlay(1, "Level"); 
      } 
       else if (level == 2) 
      { 
       elementName.text = ("sand"); 
       gotoAndPlay(1, "Level"); 
      } 
      else if (level == 3) 
      { 
       elementName.text = ("???"); 
       gotoAndPlay(1, "Level"); 
      } 
      } 

感謝, -Raph

+1

沒有足夠的代碼提供給我們來解決這個問題。根據錯誤,您的一個變量未初始化或設置爲空。發生該錯誤是因爲該變量在它仍然爲空時被訪問。 – Gigggas

+0

我剛剛編輯我的帖子,因爲它發現錯誤來自levelUp函數而不是gameWin函數。 – stackoverflowdownloads

回答

1

嗯,我不知道這是否會解決您的問題,但您的事件偵聽器當前沒有參數。所有事件偵聽器都必須將它偵聽的事件作爲參數。

所以不是

function frameUp2():void 

應該說

function frameUp2(e:TimerEvent):void 
+0

謝謝,但我仍然得到相同的錯誤/: – stackoverflowdownloads

+0

事實上,你沒有得到這裏指出的錯誤意味着你的代碼甚至從來沒有得到這部分。你確定你的錯誤來自這裏嗎? –

+0

您是否導入了Timer和TimerEvent? – User15937

0

看來我固定它...在功能上的LevelUp我刪除使動態文本的ElementName行說,如果水的水平是一個,如果這個功能被執行了,它也不會是這樣。繼承人的代碼:

public function levelUp(evt:MouseEvent):void 
     { 
      if (level == 1) 
      { 
       gotoAndPlay(1, "Level"); 
      } 
       else if (level == 2) 
      { 
       elementName.text = ("sand"); 
       gotoAndPlay(1, "Level"); 
      } 
      else if (level == 3) 
      { 
       elementName.text = ("???"); 
       gotoAndPlay(1, "Level"); 
      } 
     } 

它沒有引發錯誤,並行爲就像我想要的。謝謝大家!! -Raph