Ошибка Flex # 1009: невозможно получить доступ к свойству или методу пустой ссылки на объект - PullRequest
3 голосов
/ 07 мая 2011

Я получаю ошибку при запуске игры, которую создал с помощью flex.Я знаю, что был какой-то вопрос по этому поводу, но мой случай довольно странный.Я создал простую игру для набора текста, которая работает нормально на моем компьютере, но когда я попытался развернуть ее онлайн на Facebook, я получил эти ошибки.Я использовал код из учебника из Adobe здесь http://www.adobe.com/devnet/facebook/articles/flex_fbgraph_pt4.html, чтобы развернуть мою игру Flex на Facebook

Это сообщение об ошибке:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at FacebookUserStatusWeb/init()
    at FacebookUserStatusWeb/___FacebookUserStatusWeb_Application1_creationComplete()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()
    at mx.core::UIComponent/set initialized()
    at mx.managers::LayoutManager/doPhasedInstantiation()
    at mx.managers::LayoutManager/doPhasedInstantiationCallback()

А вот фрагмент кода инициализации() функция:

            protected var text1:String="Text to be typed"; //hard-coded temporarily
            protected const TIMER_INTERVAL:int = 10;
            protected var t:Timer = new Timer(TIMER_INTERVAL);
            protected var topURL:String=ExternalInterface.call('top.location.toString');
            protected function init():void
                    {
                        t.addEventListener(TimerEvent.TIMER, updateTimer);
                        ProblemText.text = new String(text1);
                        Facebook.init("<my app id>",loginHandler);
                        currentState = (topURL) ? "loggedout": "loggedoutonfacebook";
                    }

Некоторые примечания: 1. мой идентификатор приложения - это мой идентификатор приложения в Facebook, который я предпочитаю не показывать 2.ProblemText - это форматированный текст, в который я поместил абзац, который будет набран игроком.3. Я удалил метод Application1_creationComplete (), но он по-прежнему отображается в списке ошибок

И мне также любопытны ошибки, отличные от первых двух.Что они имеют в виду?Ах, и если это полезно, я могу опубликовать еще немного кода

Ответы [ 2 ]

4 голосов
/ 07 мая 2011

Первый: Вы видите только одну ошибку. Все, что вы видите под ошибкой # 1009, - это трассировка вашего стека, а не дополнительные ошибки.

Трассировка стека, в основном, рассказывает вам о серии событий, которые произошли до возникновения ошибки, с самой последней наверху. Это полезно, потому что часто вещи, которые происходят до фактической ошибки, которую вы видите, будут способствовать указанной ошибке.

Второе: Нулевая ссылка на объект происходит из-за того, что что-то в вашей функции init () пыталось получить доступ к свойству объекта, который не существует, или объекта, который не существует. Один (немного грязный, но эффективный) способ отладки этого состоит в том, чтобы пропустить несколько операторов трассировки в коде, чтобы увидеть, как далеко он продвигается, прежде чем разобраться с ошибкой - идея состоит в том, чтобы изолировать конкретную строку, вызывающую проблему. После того, как вы это сделали, вам нужно вернуться назад, чтобы выяснить, почему объект или свойство, которое вы пытаетесь использовать, имеет значение null. Это может быть что-то простое, например, опечатка, или это может быть более сложным. Тебе придётся вычеркнуть это, так или иначе =)

Удачи!

1 голос
/ 09 мая 2011

Наконец-то получил ошибку.Просто на тот случай, если со мной у людей такой же случай, то, что именно произошло на моем компьютере, я имитировал игру только с одним состоянием, но при развертывании на Facebook у меня несколько состояний (вход в систему, выход из системы и т.д.)В init () я пытался получить доступ к метке ProblemText, которой нет в текущем состоянии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...