2013-07-24 7 views
0

Я работаю над этой ошибкой в ​​течение нескольких дней, я продолжаю искать и просить о помощи (включая чтение с этого сайта также). В основном это связано с большим количеством внешних действий.ТипError: Ошибка # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект на pizzaBaking/doRESTART()

Каждый раз, когда я закончить интерактивный и я хочу, чтобы вернуться к предыдущему кадру, ошибка выходит:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at pizzaBaking/doRESTART() 

и это функция doRESTART

public function doRESTART(e:MouseEvent):void{ 
     MovieClip(parent).gotoAndPlay(131); 

     MovieClip(parent).MENUS.visible = false; 
     MovieClip(parent).ABOUT.visible = false; 
     MovieClip(parent).VOUCHER.visible = false; 
     MovieClip(parent).UPDATES.visible = false; 

Из-за довольно много файл, я положил все это в MediaFire, во флэш-CS6 http://www.mediafire.com/download/10skpaizeyk2kul/pizzaHut.rar

спасибо большое

+0

Если бы вы могли просто опубликовать содержимое вашего 'doRESTART()' методом было бы намного проще для людей, чтобы помочь вам. –

+0

thanx, я добавил уже – Vivorico

+0

В какой строке это происходит? Ошибка может быть в 1 из 5 объектов, поэтому мы даже не можем угадать. Однако один из ваших объектов не установлен, или 'parent' не является« MovieClip ». Кроме того, плохой практикой является вызов «parent» для чего-то большего, чем логические проверки. Вы должны отправить событие из 'doRESTART' и прослушать его в родительском объекте. –

ответ

0

1: Включить отладки

Перейдите к настройкам публикации и включите «Разрешить отладку». Это будет ваш неоднозначное ошибку ...

null object reference at pizzaBaking/doRESTART()

... в гораздо понятнее ...

null object reference at pizzaBaking/doRESTART() script\pizzaBaking.as:35

... который теперь обозначает, какая строка в коде, чтобы посмотреть для вашей проблемы.

enter image description here


2: С помощью Debug Console

Используйте режим отладки компиляции, чтобы вызвать консоль отладки. Это даст вам немедленный взгляд на строку кода, о которой идет речь, а также стек вызовов и состояние всех доступных переменных. Ни один программист не должен быть без него.

enter image description here


3: родитель == нуль

Когда doRESTART() вызывается, он больше не имеет родителя, Ergo, когда вы звоните MovieClip(parent) она возвращает нуль, и там нет MENUS Недвижимость на null. Вот почему он сообщает null object reference.

Если бы я был вами, я бы серьезно пересмотрел, как вы приближаетесь к этому. Удалите все временные коды и любое использование анимации кадров. Вероятно, это причина, по которой ваш класс pizzaBaking потерял родительские отношения. Кроме того, как представляется, несколько экземпляров, в которых вы можете объединить повторяющийся код в одну функцию (KeyboardPizza.as - пример). Попробуйте передать метод аргумент для изменения его поведения или используйте switch case или, возможно, lookup table.

Это говорит, нажмите дальше. Похоже, вы добились больших успехов в своем проекте.

-Cheers

+0

Очевидно, что создание анимации кадра - лучшее из того, что я могу сделать в настоящее время, так как я сам дизайнер, а не программист. Но я чувствую, что задаю вам несколько вопросов. Если я все еще хочу оставаться анимацией кадра, но, возможно, немного поработаю над кодом временной шкалы, как я могу это сделать? (не забывайте, что мой код временной шкалы - это просто stop() и play(), и это все, что я нашел, имеет меньшее влияние на любую проблему) – Vivorico