Ошибки таймера Actionascript
Некоторое время мы работали над игрой под названием ChemoBlue и не можем избавиться от этой ошибки:
РЕДАКТИРОВАТЬ: я изменил несколько строк кода, и ошибка теперь такова:
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");
}
}
Заранее спасибо, -Раф
2 ответа
Ну, я не уверен, что это решит вашу проблему, но ваш прослушиватель событий в настоящее время не имеет параметров. Все прослушиватели событий должны иметь событие, которое оно прослушивает, в качестве параметра.
Так что вместо
function frameUp2():void
это должно сказать
function frameUp2(e:TimerEvent):void
Кажется, я исправил это... в функции 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