Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

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.

Community Beginner ,
Sep 07, 2016 Sep 07, 2016

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;

  }

}

TOPICS
ActionScript
229
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 07, 2016 Sep 07, 2016

Is that the solution?

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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Sep 07, 2016 Sep 07, 2016
LATEST

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.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines