1

im trying to do a couple of basic games on flash that consist in random numbers but im receiving this error every time i run my scene:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at capacitacion_fla::MainTimeline/frame1()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at capacitacion_fla::MainTimeline/frame1()
at flash.display::MovieClip/gotoAndStop()
at capacitacion_fla::MainTimeline/fl_ClickToGoToAndStopAtFrame()

I am learning flash and as3 and i will appreciate if someone could help me to know whats going on, i also leave you my as3 code that is all placed on frame 1:

stop();
import com.greensock.*;
import com.greensock.easing.*;
import flash.events.MouseEvent;
import flash.display.MovieClip;

var blitMask1:BlitMask = new   BlitMask(strip1,strip1.x,strip1.y,strip1.width,207,true,true,0xffffff,true);
var blitMask2:BlitMask = new BlitMask(strip2,strip2.x,strip2.y,strip2.width,207,true,true,0xffffff,true);
// ------- botones ----------

numerico_btn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame);

function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
{
gotoAndStop(1);
}

preguntas_btn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_2);

function fl_ClickToGoToAndStopAtFrame_2(event:MouseEvent):void
{
gotoAndStop(2);
}

imagenes_btn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_3);

function fl_ClickToGoToAndStopAtFrame_3(event:MouseEvent):void
{
gotoAndStop(3);
}



//------- Fin de los botones ----------

//------------ Escena 1 ----------------------------------------------------
spin_btn.addEventListener(MouseEvent.CLICK, spin);

function spin(event:MouseEvent):void {

var i:int = 1;
while (i <= 2) {
    var newNumber:Number = (randomNumber(0, 19) * 207) + 4968;

    TweenMax.to(this["strip" +i], 2 + (i*.5), {y:strip1.y + newNumber});
    i++;    
}
}

function randomNumber(min:Number, max:Number):Number {
//good
return Math.floor(Math.random() * (1 + max - min) + min);
}
// ----------- fin escena 1 ----------

// ----------- Principio escena 2 -------------------

var blitMask3:BlitMask = new BlitMask( strip1q, strip1q.x, strip1q.y, 392 , strip1q.height, true, true, 0xffff00, true);


preguntas_btn.addEventListener(MouseEvent.CLICK, rodarPreguntas);

function rodarPreguntas(event:MouseEvent):void {

    preguntas_btn.visible = false;

    var newNumber1:Number = (randomNumber1(0, 50)*392) + 21168 ;
    //tween to the relative value of newNumber
    TweenMax.to(strip1q, 4, {x:String(-newNumber1), onComplete:showBtn});       
}

function showBtn(){
preguntas_btn.visible = true;
}

function randomNumber1(min:Number, max:Number):Number {
//good
return Math.floor(Math.random() * (1 + max - min) + min);
}

// ------- Fin escena 2 --------

I hope someone can help me figuring this out!

  • 1
    Take a look a the related questions on the right to get an understanding of your problem. This same question gets asked at least twice per week. If you're still having trouble after reading the other answers, try updating your question to show what you've given a try. – Marty Apr 16 '13 at 05:18
  • Marty Wallace is right: this is a very standard problem and there can be lots of occurrences in code which creates it. – JustLogin Apr 16 '13 at 05:37
  • Check your Keyframes (1, 2, 3) where you jumps. Check if required object is present on those keyframes. – Rajneesh Gaikwad Apr 16 '13 at 05:46

1 Answers1

3

Error 1009 is telling you that it cannot reference a button, Movie Clip, Text field etc. One easy answer for you would be to make sure your buttons have instance names. I imagine that you are using CS6 or an older version of Flash. In that case select a button, like numerico_btn when you are on the stage. Then go to the properties panel and in the instance input field put the name of numerico_btn.

Do this for all of your buttons. Finally, declare those buttons. For example:

var numerico_btn:SimpleButton;

That should solve your error. Just as an addition, make sure your button is enabled by adding numerico_btn.enabled = true; before your event listener.

Hope that helps you and anyone else who runs into this most common, beginning problems.

Syed
  • 79
  • 1
  • 8