我的班級裏,我調用這個函數影片剪輯(根)線似乎被撞毀我的遊戲
MovieClip(root).increaseScore();
它處理主。至於文件的分數。 這一切在執行關卡時都可以正常工作。然而,當水平完成,畫面轉到另一幀,遊戲崩潰,並給了我這個錯誤
TypeError: Error #1009: Cannot access a property or method of a null object reference.
上面的線。
我該如何解決這個問題? 感謝
編輯: 這是我告訴它addScore,這是在GameController.as文件
private function removeBubble(bubble, addScore:Boolean)
{
var delay:Timer = new Timer(200, 1);
delay.addEventListener(TimerEvent.TIMER_COMPLETE, function(e:TimerEvent)
{
if(bubble.parent==mcGameStage)
{
var j:int = bubbleList.indexOf(bubble);
bubbleList.splice(j,1);
if(addScore) bubble.addScore();
mcGameUI.txtScorePlayer.text = String(playerScore);
mcGameStage.removeChild(bubble);
}
e.currentTarget.removeEventListener(e.type, arguments.callee);
checkWin();
});
delay.start();
}
這裏是checkWin功能:
private function checkWin()
{
if (playerBlue + playerRed + playerYellow + playerOrange + playerPurple + playerGreen == 0)
{
gameWin();
}
}
private function gameWin()
{
while (bubbleList.numChildren > 0)
{
bubbleList.removeChildAt(0);
}
mcGameUI.btnMixBlue.removeEventListener(MouseEvent.CLICK, mixBlue);
mcGameUI.btnMixRed.removeEventListener(MouseEvent.CLICK, mixRed);
mcGameUI.btnMixYellow.removeEventListener(MouseEvent.CLICK, mixYellow);
mcGameUI.btnNeedle.removeEventListener(MouseEvent.CLICK, activateNeedle);
mcGameStage.removeEventListener(Event.ENTER_FRAME,update);
mcGameStage.removeEventListener(MouseEvent.CLICK, checkToHit);
removeEventListener(Event.ADDED_TO_STAGE, gameAddedToStage);
stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
if (mouseCursor != null)
{
mouseCursor.removeEventListener(Event.ENTER_FRAME,followMouse);
mouseCursor = null;
}
gotoAndPlay("level1win");
}
而且我的班級裏,
public function addScore()
{
root["increaseScore"]();
}
這是什麼increaseScore
public function increaseScore()
{
playerScore += 1000;
}
那麼空對象在哪裏呢? D: 另外,我對調試器很不熟悉,所以我很抱歉如果這可以很容易地解決。我試過了,在來這裏之前弄不清楚。 什麼是OPP方法? 什麼是FrameScript? 此外,該類是MovieClip的
謝謝:)
我同意一個解決方法是用調試器:) –
@AndreyPopov我不相信我在第一句話後寫了任何根本性錯誤。當然,把方法稱爲動態對象是不好的,但是告訴一個人重寫所有的代碼以使其更好地工作,因爲OOP也不會有幫助:)無論如何,我認爲我們可以認爲框架腳本很容易被哈希解決方案,所以我可以幫助的最好的方法就是警告可能導致的問題。 –
@AndreyPopov你知道,在第二個想法中,我認爲這個辯論是毫無意義的 - 沒有足夠的信息來真正回答問題。因爲現在的問題只是一個猜測遊戲,所以我們兩個都可能是對的;我們無法知道這一點。 –