Ошибка P2P Flash # 1009 - PullRequest
       3

Ошибка P2P Flash # 1009

0 голосов
/ 17 ноября 2011

Я пытаюсь создать очень простую флеш-игру, используя P2P-библиотеку Тома Крчи, которую я нашел здесь , единственная проблема, с которой я сталкиваюсь, это когда я пытаюсь реализовать класс, я получаю ошибкукогда я пытаюсь запустить приложение,

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Logger$/log()[C:\_DEV\P2PGameEngine\src\Logger.as:20]
    at P2PGame/onConnect()[C:\_DEV\P2PGameEngine\src\P2PGame.as:54]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at com.adobe.fms::P2PSession/onNetGroupConnect()[C:\_DEV\P2PMessengerLib\src\com\adobe\fms\P2PSession.as:208]
    at com.adobe.fms::P2PSession/netStatus()[C:\_DEV\P2PMessengerLib\src\com\adobe\fms\P2PSession.as:312]

, вот мой код Flash Builder,

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       width="520" height="391"
                       applicationComplete="init()">
    <fx:Script>
        <![CDATA[

            private var game:P2PGame;

            private const SERVER:String = "rtmfp://p2p.rtmfp.net/";
            private const DEVKEY:String = "DEV_KEY_HERE";

            protected function init():void
            {

                var usr:String = "user"+(Math.round(Math.random()*1000));

                game = new P2PGame(SERVER+DEVKEY,"my_group");
                game.addEventListener(Event.CONNECT, onGameConnect);
                game.connect(usr);

            }

            private function onGameConnect(event:Event):void{

                main_log.text += "P2P connection successfull..."

            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:TextArea id="main_users" x="346" y="10" width="164" height="371" color="#FFFFFF"
                contentBackgroundColor="#000000" text="ACTIVE USERS" textAlign="center"
                textDecoration="underline" verticalAlign="top"/>
    <s:TextArea id="main_log" x="10" y="10" width="328" height="371"/>
</s:WindowedApplication>

есть идеи, почему это может происходить?Я включил библиотеки, и все же я все еще получаю эту ошибку, есть идеи?

Заранее спасибо!

1 Ответ

1 голос
/ 17 ноября 2011

Сообщение об ошибке выдается в функции log () класса Logger .

Нет ничего, кроме TextField, к свойствам которого обращаются, так что это, вероятно, виновник (txtArea равен null в некоторый момент). Как ни странно, в исходном коде есть оператор if, который должен предотвратить такую ​​ошибку (if (txtArea != null)). Не могли бы вы работать со старой версией? Вам, вероятно, следует скачать исходный код с github и посмотреть, не вызывает ли текущая версия ту же ошибку.

EDIT

Я только что создал небольшой тест с пакетом SWC:

package
{
    import flash.display.Sprite;

    public class Test extends Sprite
    {
        public function Test ()
        {
            Logger.log ("something");
        }
    }
}

Запустите его и вуаля:

TypeError: Ошибка # 1009: Невозможно получить доступ к свойству или методу пустой ссылки на объект. в Logger $ / log () при тестировании ()

Принимая во внимание, что с исходной версией от github все работает нормально (хотя ничего не делает).

...