Skip to main content
Known Participant
September 7, 2016
Question

Every time i try to access playerfire (its a movieclip inside player) i get the TypeError: Error #1009: Cannot access a property or method of a null object reference.

  • September 7, 2016
  • 2 replies
  • 256 views

import flash.events.Event;

import flash.events.TouchEvent;

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

stop();

var gravity:Number=1;

var yVelocity:Number=0;

var canJump:Boolean=false;

var canDoubleJump:Boolean=false;

var enemyArray:Array = new Array();

var a:int;

for (a = numChildren - 1; a>= 0; a--)

{

  var childdB:DisplayObject = getChildAt(a);

  if (childdB.name.indexOf("enemy") > -1)

  {

  enemyArray.push(MovieClip(childdB));

  MovieClip(childdB).hitPoints = 1;

  }

}

testhit.visible = false;

testknife.visible = false;

player.gotoAndStop(2);

stage.addEventListener(Event.ENTER_FRAME,gameloop);

function gameloop(event:Event):void

{

  if (player.scaleX == -1)

  {

  testhit.x = player.x + 5;

  testhit.y = player.y - 27;

  }

  if (player.scaleX == +1)

  {

  testhit.x = player.x - 5;

  testhit.y = player.y - 27;

  }

  if (player.y >= 344.3)

  {

  player.y = 344.3;

  yVelocity = 0;

  canJump = true;

  }

  for (var en = 0; en<enemyArray.length; en++)

  {

  var ene1:Enemy = enemyArray[en] as Enemy;

  if (testknife.hitTestObject(ene1))

  {

  ene1.hitPoints --;

  testknife.x = -100;

     testknife.y = -100;

  player.playerfire.gotoAndPlay(10);

  }

  if (leftPressed == true)

  {

  ene1.x += 5;

  }

  if (rightPressed == true)

  {

  ene1.x -= 5;

  }

  if(ene1.hitPoints <= 0)

  {

  ene1.parent.removeChild(ene1);

  enemyArray.splice(en,1);

  }

  }

}

var upPressed:Boolean = false;

var rightPressed:Boolean = false;

var leftPressed:Boolean = false;

var firePressed:Boolean = false;

var checkright:Boolean = false;

var checkleft:Boolean = false;

unsetall.addEventListener(TouchEvent.TOUCH_END,gounsetall);

function gounsetall(event:TouchEvent):void

{

  rightPressed = false;

  leftPressed = false;

  checkleft = false;

  checkright = false;

  player.gotoAndStop(2);

}

left.addEventListener(TouchEvent.TOUCH_BEGIN,goleft);

function goleft(event:TouchEvent):void

{

  checkleft = true;

  leftPressed = true;

  player.scaleX = -1;

  player.gotoAndStop(1);

}

left.addEventListener(TouchEvent.TOUCH_END,stopleft);

function stopleft(event:TouchEvent):void

{

  checkleft = false;

  leftPressed = false;

  rightPressed = false;

  player.gotoAndStop(2);

}

right.addEventListener(TouchEvent.TOUCH_BEGIN,goright);

function goright(event:TouchEvent):void

{

  checkright = true;

  rightPressed = true;

  player.scaleX = +1;

  player.gotoAndStop(1);

}

right.addEventListener(TouchEvent.TOUCH_END,stopright);

function stopright(event:TouchEvent):void

{

  checkright = false;

  rightPressed = false;

  leftPressed = false;

  player.gotoAndStop(2);

}

jump.addEventListener(TouchEvent.TOUCH_BEGIN,gojump);

function gojump(event:TouchEvent):void

{

  upPressed = true;

}

jump.addEventListener(TouchEvent.TOUCH_END,ssgojumpss);

function ssgojumpss(event:TouchEvent):void

{

  upPressed = false;

}

fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

function gofire(event:TouchEvent):void

{

  firePressed = true;

}

player.addEventListener(Event.ENTER_FRAME,playerloop);

function playerloop(event:Event):void

{

  if (upPressed && canJump)

  {

  yVelocity =-12;

  canJump = false;

  canDoubleJump = true;

  }

  if(upPressed && canDoubleJump && yVelocity > -2)

  {

  yVelocity = -13;

  canDoubleJump = false;

  }

  yVelocity += gravity;

  if(! floorBox.hitTestPoint(player.x,player.y,true))

  {

  player.y+=yVelocity;

  }

  if(yVelocity > 20)

  {

  yVelocity = 20;

  }

  for (var i:int=0; i<10; i++)

  {

  if(floorBox.hitTestPoint(player.x,player.y,true))

  {

  player.y--;

  yVelocity = 0;

  canJump = true;

  }

  }

  if (leftPressed == true)

  {

  backround.x +=  5;

  backround1.x +=  5;

  floorBox.x +=  5;

  }

  if (rightPressed == true)

  {

  backround.x -=  5;

  backround1.x -=  5;

  floorBox.x -=  5;

  }

  if (upPressed == true)

  {

  //player.gotoAndStop(4);

  }

  if (firePressed == true && canJump == true)

  {

  fire.removeEventListener(TouchEvent.TOUCH_TAP,gofire);

  rightPressed = false;

  leftPressed = false;

  player.gotoAndStop(3);

  if (player.playerfire.currentFrame >= 10 && checkright == true && player.scaleX == +1)

  {

  firePressed = false;

  rightPressed = true;

  player.gotoAndStop(1);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  if (player.playerfire.currentFrame >= 10 && checkright == false && player.scaleX == +1)

  {

  firePressed = false;

  rightPressed = false;

  player.gotoAndStop(2);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  if (player.playerfire.currentFrame >= 10 && checkleft == true && player.scaleX == -1)

  {

  firePressed = false;

  leftPressed = true;

  player.gotoAndStop(1);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  if (player.playerfire.currentFrame >= 10 && checkleft == false && player.scaleX == -1)

  {

  firePressed = false;

  leftPressed = false;

  player.gotoAndStop(2);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  }

  if (firePressed == true && canJump == false)

  {

  fire.removeEventListener(TouchEvent.TOUCH_TAP,gofire);

  player.gotoAndStop(3);

  if (player.playerfire.currentFrame >= 10 && checkright == true && player.scaleX == +1)

  {

  firePressed = false;

  rightPressed = true;

  player.gotoAndStop(1);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  if (player.playerfire.currentFrame >= 10 && checkright == false && player.scaleX == +1)

  {

  firePressed = false;

  rightPressed = false;

  player.gotoAndStop(2);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  if (player.playerfire.currentFrame >= 10 && checkleft == true && player.scaleX == -1)

  {

  firePressed = false;

  leftPressed = true;

  player.gotoAndStop(1);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  if (player.playerfire.currentFrame >= 10 && checkleft == false && player.scaleX == -1)

  {

  firePressed = false;

  leftPressed = false;

  player.gotoAndStop(2);

  fire.addEventListener(TouchEvent.TOUCH_TAP,gofire);

  }

  }

  if (player.playerfire.currentFrame >= 6 && player.playerfire.currentFrame <= 8 && player.scaleX == +1)

  {

  testknife.scaleX = +1;

  testknife.x = player.x + 6;

  testknife.y = player.y - 28;

  }

  if (player.playerfire.currentFrame >= 6 && player.playerfire.currentFrame <= 8 && player.scaleX == -1)

  {

  testknife.scaleX = -1;

  testknife.x = player.x - 6;

  testknife.y = player.y - 28;

  }

  if (player.playerfire.currentFrame >= 9)

  {

  testknife.x = -100;

  testknife.y = -100;

  }

}

This topic has been closed for replies.

2 replies

robdillon
Participating Frequently
September 7, 2016

The usual response for that error is that the object in question does not exist on the timeline in the same frame where the code is written. Since playerfire is inside player, you'll need to be sure that player in available at the frame where the code is and that playerfire is available inside player.

Known Participant
September 7, 2016

Is that the solution?

if (player.cuurentFrame == 3 && player.playerfire.currentFrame >= 6 && player.playerfire.currentFrame <= 8 && player.scaleX == -1)