Не удается получить доступ к свойству или методу пустой ссылки на объект - PullRequest
0 голосов
/ 23 июля 2011

теперь это сводит меня с ума ... и я потратил целый день, пытаясь это исправить .. :( Я просто продолжаю получать эту ошибку (я не знаю, как Adobe может дать нам ошибки, которые не указывают начто-нибудь)

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at loader::AddPhoto()
    at AddPhoto()
    at flash.display::Sprite/constructChildren()
    at flash.display::Sprite()
    at flash.display::MovieClip()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at loader::AddPhoto()
    at AddPhoto()
    at flash.display::Sprite/constructChildren()
    at flash.display::Sprite()
    at flash.display::MovieClip()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at loader::AddPhoto()
    at AddPhoto()
    at flash.display::Sprite/constructChildren()
    at flash.display::Sprite()
    at flash.display::MovieClip()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at loader::AddPhoto()
    at AddPhoto()
    at flash.display::Sprite/constructChildren()
    at flash.display::Sprite()
    at flash.display::MovieClip()

вот мой код, у меня есть кнопка на сцене (связана с файлом) и atextbox (не связаны или что-то еще)

пожалуйста, игрноребеспорядочный импорт отчетов

package  loader 
{
    import flash.events.* ; 
    import flash.net.*;
    import flash.display.* ;
    import flash.media.* ;  
    import flash.display.Loader ; 
    import flash.display.LoaderInfo;
    import flash.system.*;
    import flash.text.TextField;
    import flash.utils.*;


    public class AddPhoto extends MovieClip {
        //variables
        private var FromURL:MovieClip;
        private var geurl:TextField;

        public var reques:URLRequest = new URLRequest (); //pass nothing yet
        public var getit:Loader = new Loader(); // the loader
        //constructor function 

        public function AddPhoto () {
            FromURL.addEventListener (MouseEvent.CLICK , addFromURL )  //  just a button


        }


        public function addFromURL (e:MouseEvent) {
            reques.url = geurl.text ;  // geurl is the txt box i have on the stage
            getit.load (reques);
            addChild(getit);

        }

    }

}

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Попробуйте:

private var FromURL:MovieClip = new MovieClip;

Вы объявляете переменную FromUrl, но не создаете для нее новый экземпляр. Это может быть проблемой.

0 голосов
/ 23 июля 2011

Дай угадаю.Вы используете Flash IDE (на самом деле это не предположение. Трассировка стека выше - именно то, что вы получили бы в IDE), и у вас есть дочерний MovieClip на сцене с именем FormURL.

К сожалению, Flash будет заполнять только открытые свойства пользовательских классов, что означает, что вам нужно либо сделать эту переменную общедоступной, либо вам придется подождать до Event.ADDED и вызвать FormURL = MovieClip( getChildByName( "FormURL" ) );

Примечание: предпочтительный стиль AS3 состоит в том, чтобы все переменные начинались со строчной буквы.

quickfix:

Это должно работать.Замените ваш конструктор следующим:

public function AddPhoto(){ addEventListener( Event.ADDED, addedHandler ); }

private function addedHandler( event:Event ):void
{ 
     FromURL = MovieClip( getChildByName( "FormURL" ) ); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...