Typeerror error 1009 cannot access a property or method of a null object reference

I am extremely frustrated. I'm following a tutorial and mimicing it on my own. I have been able to sort out most of the errors so far but this one has me stumped. I have tried replacing all of the ...

Tip: If you allow debugging, the exception will tell you the exact line in the source code where the Error is being thrown. Assuming you’re using the Flash IDE, go to publish settings and in the Flash tab check «Permit debugging». This will makes thing much easier for you.

Anyway, you have an error message. If you read it carefully, you can narrow down where the problem is. I don’t know if you are a programmer or you have any interest in being one; if you’re not, this answer will hopefully solve this particular problem. Anyway, if you don’t mind the rambling, let me tell you that if you’re interested in becoming a better programmer, paying attention to errors and learning how to debug / troubleshoot problems is one of the most important abilities you need to develop (if not the most important one); so maybe this will give you a few hints you can use to solve other problems as well.

The message says:

Cannot access a property or method of
a null object reference.

This means, at some point, you did something like this:

someobject.someMethod();

or

someobject.someProperty = "foo";

And someobject happened to be null. You can’t call methods or access properties of null.

Ok, so now you know, somewhere, a variable had null as its value. Notice that the fact that you define a variable of property doesn’t mean it actually holds an object.

This just says that a variable called mySprite can hold an object of the type Sprite:

var mySprite:Sprite;

But until at some point you create a Sprite and assign it to mySprite, the value held by mySprite will be null. If you do:

mySprite.x = 0;

Before initializing mySprite (i.e. before assigning a Sprite to it), you will have this same Null Reference error.

This error message also offers some helpul context, which you can use to your advantage (in them old days… errors in Flash were silent; when things didn’t work, you had to manually trace down the problem).

Ok, let’s break this error message down:

 at com.senocular.utils::KeyObject/construct()
 at com.senocular.utils::KeyObject()
 at com.asgamer.basics1::Ship()
 at com.asgamer.basics1::Engine()

What you have above is called a stack trace. It basically tells you where the code blew up, and also gives you some context: how did you get there.

The first line tells where the error actually occurred. That is, the construct method in the KeyObject object. That method was called from the KeyObject constructor, which was in turn called from the Ship constructor, which was in turn called from the Engine constructor.

Now, let’s analyze how you got there, following the stack trace, bottom-up:

Code in Engine constructor:

ourShip = new Ship(stage);

This creates a new Ship object. It passes a reference to the stage to the Ship constructor method.

Code in Ship constructor:

this.stageRef = stageRef;
key = new KeyObject(stageRef);

It grabs the ref passed in the previous step. It stores it and creates a new KeyObject object. The KeyObject constructor is passed a reference to the stage (which is the same ref that was passed from Engine to Ship).

Code in KeyObject constructor:

KeyObject.stage = stage; 
keysDown = new Object(); 
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);

Now we got to the point where the error message told you the problem was. So, somewhere, you are using a variable that holds null and trying to access one of its methods or properties.

This KeyObject stores the reference to stage it was passed in a static variable and creates a new Object object. So far, no problems. KeyObject cannot be null (it’s a reference to a Class). The second line itself cannot have this null problem either. So, if this is all the code in that method, the problem has to be either in the third or the fourth line. Both access the stage reference you passed and try to call a method (addEventListener) on it. So if one fails, the other will fail as well. Then, the third line: that’s where the problem has to be.

So, at that point stage is null. As said previously, you can’t call a method on null, and that’s what the error is telling you.

Now, if you get back to the first method call, you can see this is the origin of the problem:

ourShip = new Ship(stage);

You can be pretty sure that, at this point, stage was null. Add that to the fact that Engine extends MovieClip (which is in turn a DisplayObject), and to the fact that any DisplayObject has a reference to the stage object only while it’s added to the display list. The conclusion: an instance of Engine was not attached to the display list when its constructor was ran.

A way to fix this (there might be others) could be moving the code in the Engine constructor to a separate function that will be executed only if / when the Engine object has a valid reference to the stage object.

public function Engine() : void {
    if(stage) {
        initialize();
    } else {
        addEventListener(Event.ADDED_TO_STAGE,initialize);
    }
} 

private function initialize(e:Event = null):void {
    removeEventListener(Event.ADDED_TO_STAGE,initialize);
    //  here goes the code that's currently in Engine constructor
}

Hope this helps.

Icon Ex Номер ошибки: Ошибка 1009
Название ошибки: TypeError: Error #1009: Cannot access a property or method of a null object reference
Описание ошибки: TypeError: Error #1009: Cannot access a property or method of a null object reference. at town_fla: : Button_237/frame1().
Разработчик: Adobe Systems Inc.
Программное обеспечение: Adobe Flash Player
Относится к: Windows XP, Vista, 7, 8, 10, 11

«TypeError: Error #1009: Cannot access a property or method of a null object reference» Введение

Обычно люди ссылаются на «TypeError: Error #1009: Cannot access a property or method of a null object reference» как на ошибку времени выполнения (ошибку). Когда дело доходит до программного обеспечения, как Adobe Flash Player, инженеры могут использовать различные инструменты, чтобы попытаться сорвать эти ошибки как можно скорее. Как и во всем в жизни, иногда такие проблемы, как ошибка 1009, упускаются из виду.

Некоторые пользователи могут столкнуться с сообщением «TypeError: Error #1009: Cannot access a property or method of a null object reference. at town_fla: : Button_237/frame1().» при использовании Adobe Flash Player. Сообщение об этой ошибке 1009 позволит разработчикам обновить свое приложение и исправить любые ошибки, которые могут вызвать его. Затем Adobe Systems Inc. исправит ошибки и подготовит файл обновления для загрузки. Следовательно, разработчик будет использовать пакет обновления Adobe Flash Player для устранения ошибки 1009 и любых других сообщений об ошибках.

Что генерирует ошибку времени выполнения 1009?

Сбой во время выполнения Adobe Flash Player, как правило, когда вы столкнетесь с «TypeError: Error #1009: Cannot access a property or method of a null object reference» в качестве ошибки во время выполнения. Вот три наиболее заметные причины ошибки ошибки 1009 во время выполнения происходят:

Ошибка 1009 Crash — это очень популярная ошибка выполнения ошибки 1009, которая приводит к завершению работы всей программы. Когда Adobe Flash Player не может обеспечить достаточный вывод для данного ввода или действительно не знает, что выводить, он часто путает систему таким образом.

Утечка памяти «TypeError: Error #1009: Cannot access a property or method of a null object reference» — ошибка 1009 утечка памяти приводит к тому, что Adobe Flash Player постоянно использует все больше и больше памяти, увяская систему. Есть некоторые потенциальные проблемы, которые могут быть причиной получения проблем во время выполнения, с неправильным кодированием, приводящим к бесконечным циклам.

Ошибка 1009 Logic Error — логическая ошибка возникает, когда компьютер генерирует неправильный вывод, даже если пользователь предоставляет правильный ввод. Виновником в этом случае обычно является недостаток в исходном коде Adobe Systems Inc., который неправильно обрабатывает ввод.

В большинстве случаев проблемы с файлами TypeError: Error #1009: Cannot access a property or method of a null object reference связаны с отсутствием или повреждением файла связанного Adobe Flash Player вредоносным ПО или вирусом. Для устранения неполадок, связанных с файлом Adobe Systems Inc., большинство профессионалов ПК заменят файл на соответствующую версию. Мы также рекомендуем выполнить сканирование реестра, чтобы очистить все недействительные ссылки на TypeError: Error #1009: Cannot access a property or method of a null object reference, которые могут являться причиной ошибки.

Распространенные проблемы TypeError: Error #1009: Cannot access a property or method of a null object reference

Общие проблемы TypeError: Error #1009: Cannot access a property or method of a null object reference, возникающие с Adobe Flash Player:

  • «Ошибка программы TypeError: Error #1009: Cannot access a property or method of a null object reference. «
  • «TypeError: Error #1009: Cannot access a property or method of a null object reference не является приложением Win32.»
  • «TypeError: Error #1009: Cannot access a property or method of a null object reference должен быть закрыт. «
  • «Файл TypeError: Error #1009: Cannot access a property or method of a null object reference не найден.»
  • «TypeError: Error #1009: Cannot access a property or method of a null object reference не найден.»
  • «Ошибка запуска в приложении: TypeError: Error #1009: Cannot access a property or method of a null object reference. «
  • «Файл TypeError: Error #1009: Cannot access a property or method of a null object reference не запущен.»
  • «TypeError: Error #1009: Cannot access a property or method of a null object reference выйти. «
  • «Ошибка в пути к программному обеспечению: TypeError: Error #1009: Cannot access a property or method of a null object reference. «

Проблемы Adobe Flash Player TypeError: Error #1009: Cannot access a property or method of a null object reference возникают при установке, во время работы программного обеспечения, связанного с TypeError: Error #1009: Cannot access a property or method of a null object reference, во время завершения работы или запуска или менее вероятно во время обновления операционной системы. Документирование проблем TypeError: Error #1009: Cannot access a property or method of a null object reference в Adobe Flash Player является ключевым для определения причины проблем с электронной Windows и сообщения о них в Adobe Systems Inc..

Эпицентры TypeError: Error #1009: Cannot access a property or method of a null object reference Головные боли

Заражение вредоносными программами, недопустимые записи реестра Adobe Flash Player или отсутствующие или поврежденные файлы TypeError: Error #1009: Cannot access a property or method of a null object reference могут создать эти ошибки TypeError: Error #1009: Cannot access a property or method of a null object reference.

В первую очередь, проблемы TypeError: Error #1009: Cannot access a property or method of a null object reference создаются:

  • Недопустимая или поврежденная запись TypeError: Error #1009: Cannot access a property or method of a null object reference.
  • Файл TypeError: Error #1009: Cannot access a property or method of a null object reference поврежден от вирусной инфекции.
  • Другая программа (не связанная с Adobe Flash Player) удалила TypeError: Error #1009: Cannot access a property or method of a null object reference злонамеренно или по ошибке.
  • Другая программа, конфликтующая с TypeError: Error #1009: Cannot access a property or method of a null object reference или другой общей ссылкой Adobe Flash Player.
  • Неполный или поврежденный Adobe Flash Player (TypeError: Error #1009: Cannot access a property or method of a null object reference) из загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

Dear All,

I hope you can help me with what is probably a very simple problem yet seems to affect most people! However, I’ve spent all day researching it and trying all sorts of codes to resolve the error!

I am in the process of building a new website using Flash CS5 and I am very new to whole scripting business (as3).  Having finished the main content of the website, I created an external preloader so it can load the main SWF file. However, when I debug or test the scene I get this error:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
   at Index_fla::MainTimeline/frame1()[Index_fla.MainTimeline::frame1:11]

After many hours, I find the publish settings, publish debugging which actually tells me what line/frame is causing the problem! If I go to my main file (labelled as Index.Fla) and look at Frame 1, Line 11 it indicates:

var buttonsArray:Array = [works_btn,about_btn,contact_btn];

… which sounds about right, considering when the preloader has finished the main flash file navigation buttons (work/about/contact) appear to not work quite right. They still function taking you to the right pages (or frames) but the mouse over, mouse click functions do not work.

Now I’m not really sure how to deal with this, because All the buttons (which are Movie clips) are located on Frame one and have the right instance names and PLUS when I debug the Index.Fla file, everything works as normal.

Should I assume there is something wrong with my preloader file?

Below is the script for the preloader and frame one fo the index file. Hope you can help me! Thanks!

PRELOADER:

var l:Loader = new Loader();

l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("Index.swf"));

function loop(e:ProgressEvent):void
{
   var perc:Number = e.bytesLoaded / e.bytesTotal;
   percent.text = Math.ceil(perc*100).toString() + "% Complete";
}

function done(e:Event):void
{
   removeChildAt(0);
   removeChild(preloader)
   percent = null;
   addChild(l);

   l.contentLoaderInfo.removeEventListener( ProgressEvent.PROGRESS, loop);
   l.contentLoaderInfo.removeEventListener(Event.COMPLETE, done);

}

INDEX (MAIN FILE — FRAME ONE)

stop();

works_btn.addEventListener(MouseEvent.CLICK, navigationClicked);
about_btn.addEventListener(MouseEvent.CLICK, navigationClicked);
contact_btn.addEventListener(MouseEvent.CLICK, navigationClicked);

stage.frameRate = 30;
var buttonsArray:Array = [works_btn,about_btn,contact_btn];

   function setButtons():void
   { for (var i:int=0; i<buttonsArray.length; i++)
      {   buttonsArray.id = i;  
         buttonsArray.buttonMode = true;  
         buttonsArray.mouseChildren = false;  
         buttonsArray.mouseEnabled = true;  
         buttonsArray.addEventListener(MouseEvent.ROLL_OVER,playOver);  
         buttonsArray.addEventListener(MouseEvent.ROLL_OUT,playOut);  
         buttonsArray.addEventListener(MouseEvent.CLICK,doClick);  
      }
}

function playOver(event:MouseEvent):void
   {   event.currentTarget.gotoAndPlay("over");
   }
function playOut(event:MouseEvent):void
   {   event.currentTarget.gotoAndPlay("out");
   }

function doClick(event:MouseEvent):void{

      var currentBtn:int = event.currentTarget.id;  

   setSelectedBtn(currentBtn);
}

function setSelectedBtn(id:int):void{  
   for (var i:int=0; i< buttonsArray.length; i++) {  
      if (id == i) {  
         buttonsArray.gotoAndStop("down");  
         buttonsArray.buttonMode = false;  
         buttonsArray.mouseEnabled = false; 
         buttonsArray.removeEventListener(MouseEvent.ROLL_OVER,playOver);  
         buttonsArray.removeEventListener(MouseEvent.ROLL_OUT,playOut); 
         buttonsArray.removeEventListener(MouseEvent.CLICK,doClick);
         } else {  
            if(buttonsArray.currentLabel =="down"){
               buttonsArray.gotoAndPlay("out");  
               }  
               buttonsArray.buttonMode = true;  
               buttonsArray.mouseEnabled = true;  
               buttonsArray.addEventListener(MouseEvent.ROLL_OVER,playOver);  
               buttonsArray.addEventListener(MouseEvent.ROLL_OUT,playOut);  
               buttonsArray.addEventListener(MouseEvent.CLICK,doClick);
               }  
         }
      }
setButtons();

function navigationClicked(Event:MouseEvent):void
{
   var frmLabel:String = '';

    switch (Event.target)
   {
      case works_btn :
            frmLabel = "Portfolio_frm";
            break;
        case about_btn :
            frmLabel = "About_frm";
            break;
        case contact_btn :
            frmLabel = "Contact_frm";
            break;
   }

         if (currentFrame != frmGoto)
   {

            var frmPortfolio:Number = this.getFrame("Portfolio_frm");

                  gotoAndPlay(frmGoto);
   }
}

function getFrame(frameName:String):Number
{
    var frame:Number = 1;

       for (var i = 0; i < currentLabels.length; i++)
    {
        if (currentLabels.name == frameName)
        {
            frame = currentLabels.frame;
            break;
        }
    }

    return frame;
}

Понравилась статья? Поделить с друзьями:
  • Type object is not subscriptable ошибка
  • Type module js ошибка
  • Type mismatch vba excel ошибка
  • Type hidden как изменить
  • Type error takes no arguments