Skip to main content
Participant
February 1, 2012
Question

Help needed for school

  • February 1, 2012
  • 1 reply
  • 509 views

Hello everyone,

Currently if been busy with AS3 for a schoolproject however I'm facing all kind of problems.. If tried to contact a number of people for help, but neither they can help me with this. If searched my schoolbooks and of course the internet but I cant find anything about my issue.. Therefor I'm desperate and hoping someone on this forum is able to help me.

The current problem with my code is everytime I press the play again button in frame 4 and I restart my game it goes twice as fast. So I asked my teacher and she told me it's something with the EventHandlers but I didn't used them in my code. She's of no help to me currently.. Yes, education over here is worthless in a certain amount.. Personally I think to error lies in this code:

I also get the error called: TypeError: Error #1009 about a null object. It's at the MainTimeline/ enter_frame()..

import flash.text.TextField;

var upPressed:Boolean = false;

var downPressed:Boolean = false;

var leftPressed:Boolean = false;

var rightPressed:Boolean = false;

var laser:Laser;

var lazer:Lazer;

lazer = new Lazer();

var spaceBar:Boolean;

var channel:SoundChannel;

channel = new SoundChannel();

var vijand:enemy;

var ship:Personage;

var numberOfKilledEnemies:int = 0;

var localhoogste:SharedObject = SharedObject.getLocal("score");

var showscore:TextField;

var outputnaam:TextField;

var Levens:int = 3;

var shipHalfWidth:uint = ship.width / 2;

var shipHalfHeight:uint = ship.height / 2;

localhoogste.data.score = 0;

ship.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);

stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

function limitStageBorder(ship:MovieClip)

{

          if (ship.x + shipHalfWidth > stage.stageWidth)

          {

                    ship.x = stage.stageWidth - shipHalfWidth;

          }

          else if (ship.x - shipHalfWidth <0)

          {

                    ship.x = 0 + shipHalfWidth;

          }

          if (ship.y - shipHalfHeight < 0)

          {

                    ship.y = 0 + shipHalfHeight;

          }

          else if (ship.y + shipHalfHeight > stage.stageHeight)

          {

                    ship.y = stage.stageHeight - shipHalfHeight;

          }

}

function fl_MoveInDirectionOfKey_2(event:Event)

{

          outputnaam.text = ingevoerdenaam;

          if(ship != null)

          {

                    limitStageBorder(ship);

          }

 

          if (ship != null && upPressed == true)

          {

                    ship.y -=  5;

          }

          if (ship != null && downPressed == true)

          {

                    ship.y +=  5;

          }

          if (ship != null && leftPressed == true)

          {

                    ship.x -=  5;

          }

          if (ship != null && rightPressed == true)

          {

                    ship.x +=  5;

          }

          if (ship != null && vijand == null)

          {

                    vijand = new enemy();

                    vijand.x = Math.random() * stage.stageWidth;

                    vijand.y = -10;

                    stage.addChild(vijand);

          }

          if (vijand != null)

          {

                    vijand.y = vijand.y + 5;

          }

          if (vijand && vijand.y > stage.stageHeight)

          {

                    stage.removeChild(vijand);

                    vijand = null;

          }

          if (vijand != null && vijand.hitTestObject(ship))

          {

                    ship.gotoAndPlay(6);

                    vijand.gotoAndPlay(4);

                    Levens = Levens - 1;

                    ship = new Personage();

                    ship.x = Math.random() * stage.stageWidth;

                    ship.y = stage.stageHeight + ship.height / 2;

                    stage.addChild(ship);

                    stage.addChild(vijand);

                    vijand = null;

          }

          if (vijand != null && laser != null && vijand.hitTestObject(laser))

          {

                    vijand.gotoAndPlay(4);

                    stage.removeChild(laser);

                    vijand = null;

                    laser = null;

                    numberOfKilledEnemies = numberOfKilledEnemies + 1;

                    showscore.text = String(numberOfKilledEnemies);

                    localhoogste.data.score = numberOfKilledEnemies;

                    vijand = new enemy();

                    vijand.x = Math.random() * stage.stageWidth;

                    vijand.y = -10;

                    stage.addChild(vijand);

          }

}

function fl_SetKeyPressed_2(event:KeyboardEvent):void

{

          switch (event.keyCode)

          {

                    case Keyboard.UP :

                              {

                                        upPressed = true;

                                        break;

                              };

                    case Keyboard.DOWN :

                              {

                                        downPressed = true;

                                        break;

                              };

                    case Keyboard.LEFT :

                              {

                                        leftPressed = true;

                                        break;

                              };

                    case Keyboard.RIGHT :

                              {

                                        rightPressed = true;

                                        break;

                    }

          }

};

function fl_UnsetKeyPressed_2(event:KeyboardEvent):void

{

          switch (event.keyCode)

          {

                    case Keyboard.UP :

                              {

                                        upPressed = false;

                                        break;

                              };

                    case Keyboard.DOWN :

                              {

                                        downPressed = false;

                                        break;

                              };

                    case Keyboard.LEFT :

                              {

                                        leftPressed = false;

                                        break;

                              };

                    case Keyboard.RIGHT :

                              {

                                        rightPressed = false;

                                        break;

                    }

          }

};

ship.addEventListener(Event.ENTER_FRAME, enter_frame);

function enter_frame(event:Event):void

{

          if (ship.hitTestObject(Blockade))

          {

                    ship.y -=  10;

          }

}

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed, false, 0, true);

stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUP, false, 0, true);

stage.addEventListener(Event.ENTER_FRAME, updateGame, false, 0, true);

stage.addEventListener(Event.ENTER_FRAME, gameOver, false, 0, true);

function onKeyPressed(evt:KeyboardEvent):void

{

          switch (evt.keyCode)

          {

                    case Keyboard.SPACE :

                              spaceBar = true;

                              break;

          }

}

function onKeyUP(evt:KeyboardEvent):void

{

          switch (evt.keyCode)

          {

                    case Keyboard.SPACE :

                              spaceBar = false;

                              break;

          }

}

function updateGame(evt:Event):void

{

          if (spaceBar)

          {

                    if (laser == null)

                    {

                              laser = new Laser();

                              laser.x = ship.x;

                              laser.y = ship.y - 40;

                              stage.addChild(laser);

                              channel = lazer.play();

                    }

          }

          if (laser != null)

          {

                    laser.y = laser.y - 10;

          }

          if (laser && laser.y <= 0)

          {

                    stage.removeChild(laser);

                    laser = null;

          }

          showlife.text = String(Levens);

}

function gameOver(evt:Event):void

{

          if (Levens < 1)

          {

                    stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);

                    stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUP);

                    stage.removeEventListener(Event.ENTER_FRAME, updateGame);

                    ship.removeEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

                    stage.removeEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);

                    stage.removeEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

                    stage.removeEventListener(Event.ENTER_FRAME, gameOver);

                    {

                              if (vijand != null)

                              {

                                        stage.removeChild(vijand);

                                        vijand = null;

                              }

                              if (ship != null)

                              {

                                        stage.removeChild(ship);

                                        ship = null;

                              }

                              if (laser != null)

                              {

                                        stage.removeChild(laser);

                                        laser = null;

                              }

                    }

                    gotoAndStop(4);

          }

}

This topic has been closed for replies.

1 reply

kglad
Community Expert
Community Expert
February 1, 2012

you're trying to reference a non-existant object.  click file/publish settings/flash and tick "permit debugging".  retest.  the line number with the problematic reference will be in the error message.

Participant
February 3, 2012

Most of the errors are currently away.. The only problem now is that my game still goes twice as fast when I go from frame 4 ( button play again ) to frame 1, where you can enter your name again and go to frame 3 to play the game. The part wit /// was a tought of mine about how to get the ship to move slower again.. However it didn't work..

Here is my currently code:

import flash.text.TextField;

var upPressed:Boolean = false;

var downPressed:Boolean = false;

var leftPressed:Boolean = false;

var rightPressed:Boolean = false;

var laser:Laser;

var lazer:Lazer;

lazer = new Lazer();

var spaceBar:Boolean;

var channel:SoundChannel;

channel = new SoundChannel();

var vijand:enemy;

var ship:Personage;

var numberOfKilledEnemies:int = 0;

var localhoogste:SharedObject = SharedObject.getLocal("score");

var showscore:TextField;

var outputnaam:TextField;

var Levens:int = 3;

var shipHalfWidth:uint = ship.width / 2;

var shipHalfHeight:uint = ship.height / 2;

localhoogste.data.score = 0;

ship.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);

stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);

stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUP);

stage.addEventListener(Event.ENTER_FRAME, updateGame);

stage.addEventListener(Event.ENTER_FRAME, gameOver);

ship.addEventListener(Event.ENTER_FRAME, enter_frame);

function enter_frame(event:Event):void

{

          if (ship != null && ship.hitTestObject(Blockade))

          {

                    ship.y = ship.y -5;

          }

}

function limitStageBorder(ship:MovieClip)

{

          if (ship.x + shipHalfWidth > stage.stageWidth)

          {

                    ship.x = stage.stageWidth - shipHalfWidth;

          }

          else if (ship.x - shipHalfWidth <0)

          {

                    ship.x = 0 + shipHalfWidth;

          }

          if (ship.y - shipHalfHeight < 0)

          {

                    ship.y = 0 + shipHalfHeight;

          }

          else if (ship.y + shipHalfHeight > stage.stageHeight)

          {

                    ship.y = stage.stageHeight - shipHalfHeight;

          }

}

function fl_MoveInDirectionOfKey_2(event:Event)

{

          outputnaam.text = ingevoerdenaam;

          if(ship != null)

          {

                    limitStageBorder(ship);

          }

 

//          if (ship != null && upPressed == false)

//          {

//                    ship.y = ship.y -0;

//          }

//          if (ship != null && downPressed == false)

//          {

//                    ship.y = ship.y +0;

//          }

//          if (ship != null && leftPressed == false)

//          {

//                    ship.x = ship.x -0;

//          }

//          if (ship!== null && rightPressed == false)

//          {

//                    ship.x = ship.x +0;

          }

          if (ship != null && upPressed == true)

          {

                    ship.y = ship.y -5;

          }

          if (ship != null && downPressed == true)

          {

                    ship.y = ship.y +5;

          }

          if (ship != null && leftPressed == true)

          {

                    ship.x = ship.x -5;

          }

          if (ship != null && rightPressed == true)

          {

                    ship.x = ship.x +5;

          }

          if (ship != null && vijand == null)

          {

                    vijand = new enemy();

                    vijand.x = Math.random() * stage.stageWidth;

                    vijand.y = -10;

                    stage.addChild(vijand);

          }

          if (vijand != null)

          {

                    vijand.y = vijand.y + 5;

          }

          if (vijand && vijand.y > stage.stageHeight)

          {

                    stage.removeChild(vijand);

                    vijand = null;

          }

          if (vijand != null && vijand.hitTestObject(ship))

          {

                    ship.gotoAndPlay(6);

                    vijand.gotoAndPlay(4);

                    Levens = Levens - 1;

                    ship = new Personage();

                    ship.x = Math.random() * stage.stageWidth;

                    ship.y = stage.stageHeight + ship.height / 2;

                    stage.addChild(ship);

                    stage.addChild(vijand);

                    vijand = null;

          }

          if (vijand != null && laser != null && vijand.hitTestObject(laser))

          {

                    vijand.gotoAndPlay(4);

                    stage.removeChild(laser);

                    vijand = null;

                    laser = null;

                    numberOfKilledEnemies = numberOfKilledEnemies + 1;

                    showscore.text = String(numberOfKilledEnemies);

                    localhoogste.data.score = numberOfKilledEnemies;

                    vijand = new enemy();

                    vijand.x = Math.random() * stage.stageWidth;

                    vijand.y = vijand.y -5;

                    stage.addChild(vijand);

          }

}

function fl_SetKeyPressed_2(event:KeyboardEvent):void

{

          switch (event.keyCode)

          {

                    case Keyboard.UP :

                              {

                                        upPressed = true;

                                        break;

                              };

                    case Keyboard.DOWN :

                              {

                                        downPressed = true;

                                        break;

                              };

                    case Keyboard.LEFT :

                              {

                                        leftPressed = true;

                                        break;

                              };

                    case Keyboard.RIGHT :

                              {

                                        rightPressed = true;

                                        break;

                    }

          }

};

function fl_UnsetKeyPressed_2(event:KeyboardEvent):void

{

          switch (event.keyCode)

          {

                    case Keyboard.UP :

                              {

                                        upPressed = false;

                                        break;

                              };

                    case Keyboard.DOWN :

                              {

                                        downPressed = false;

                                        break;

                              };

                    case Keyboard.LEFT :

                              {

                                        leftPressed = false;

                                        break;

                              };

                    case Keyboard.RIGHT :

                              {

                                        rightPressed = false;

                                        break;

                    }

          }

};

function onKeyPressed(evt:KeyboardEvent):void

{

          switch (evt.keyCode)

          {

                    case Keyboard.SPACE :

                              spaceBar = true;

                              break;

          }

}

function onKeyUP(evt:KeyboardEvent):void

{

          switch (evt.keyCode)

          {

                    case Keyboard.SPACE :

                              spaceBar = false;

                              break;

          }

}

function updateGame(evt:Event):void

{

          if (spaceBar)

          {

                    if (laser == null)

                    {

                              laser = new Laser();

                              laser.x = ship.x;

                              laser.y = ship.y - 40;

                              stage.addChild(laser);

                              channel = lazer.play();

                    }

          }

          if (laser != null)

          {

                    laser.y = laser.y - 10;

          }

          if (laser && laser.y <= 0)

          {

                    stage.removeChild(laser);

                    laser = null;

          }

          showlife.text = String(Levens);

}

function gameOver(evt:Event):void

{

          if (Levens < 1)

          {

                    stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);

                    stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUP);

                    stage.removeEventListener(Event.ENTER_FRAME, updateGame);

                    ship.removeEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

                    stage.removeEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);

                    stage.removeEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

                    stage.removeEventListener(Event.ENTER_FRAME, gameOver);

                    ship.removeEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

                    ship.removeEventListener(Event.ENTER_FRAME, enter_frame);

                    {

                              if (vijand != null)

                              {

                                        stage.removeChild(vijand);

                                        vijand = null;

                              }

                              if (ship != null)

                              {

                                        stage.removeChild(ship);

                                        ship = null;

                              }

                              if (laser != null)

                              {

                                        stage.removeChild(laser);

                                        laser = null;

                              }

                    }

                    gotoAndStop(4);

          }

}

kglad
Community Expert
Community Expert
February 3, 2012

use:

var alreadyExecuted:Boolean;

import flash.text.TextField;

var upPressed:Boolean = false;

var downPressed:Boolean = false;

var leftPressed:Boolean = false;

var rightPressed:Boolean = false;

var laser:Laser;

var lazer:Lazer;

lazer = new Lazer();

var spaceBar:Boolean;

var channel:SoundChannel;

channel = new SoundChannel();

var vijand:enemy;

var ship:Personage;

var numberOfKilledEnemies:int = 0;

var localhoogste:SharedObject = SharedObject.getLocal("score");

var showscore:TextField;

var outputnaam:TextField;

var Levens:int = 3;

var shipHalfWidth:uint = ship.width / 2;

var shipHalfHeight:uint = ship.height / 2;

localhoogste.data.score = 0;

if(!alreadyExecuted){

alreadyExecuted=true;

ship.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);

stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);

stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUP);

stage.addEventListener(Event.ENTER_FRAME, updateGame);

stage.addEventListener(Event.ENTER_FRAME, gameOver);

ship.addEventListener(Event.ENTER_FRAME, enter_frame);

function enter_frame(event:Event):void

{

          if (ship != null && ship.hitTestObject(Blockade))

          {

                    ship.y = ship.y -5;

          }

}

function limitStageBorder(ship:MovieClip)

{

          if (ship.x + shipHalfWidth > stage.stageWidth)

          {

                    ship.x = stage.stageWidth - shipHalfWidth;

          }

          else if (ship.x - shipHalfWidth <0)

          {

                    ship.x = 0 + shipHalfWidth;

          }

          if (ship.y - shipHalfHeight < 0)

          {

                    ship.y = 0 + shipHalfHeight;

          }

          else if (ship.y + shipHalfHeight > stage.stageHeight)

          {

                    ship.y = stage.stageHeight - shipHalfHeight;

          }

}

function fl_MoveInDirectionOfKey_2(event:Event)

{

          outputnaam.text = ingevoerdenaam;

          if(ship != null)

          {

                    limitStageBorder(ship);

          }

 

//          if (ship != null && upPressed == false)

//          {

//                    ship.y = ship.y -0;

//          }

//          if (ship != null && downPressed == false)

//          {

//                    ship.y = ship.y +0;

//          }

//          if (ship != null && leftPressed == false)

//          {

//                    ship.x = ship.x -0;

//          }

//          if (ship!== null && rightPressed == false)

//          {

//                    ship.x = ship.x +0;

          }

          if (ship != null && upPressed == true)

          {

                    ship.y = ship.y -5;

          }

          if (ship != null && downPressed == true)

          {

                    ship.y = ship.y +5;

          }

          if (ship != null && leftPressed == true)

          {

                    ship.x = ship.x -5;

          }

          if (ship != null && rightPressed == true)

          {

                    ship.x = ship.x +5;

          }

          if (ship != null && vijand == null)

          {

                    vijand = new enemy();

                    vijand.x = Math.random() * stage.stageWidth;

                    vijand.y = -10;

                    stage.addChild(vijand);

          }

          if (vijand != null)

          {

                    vijand.y = vijand.y + 5;

          }

          if (vijand && vijand.y > stage.stageHeight)

          {

                    stage.removeChild(vijand);

                    vijand = null;

          }

          if (vijand != null && vijand.hitTestObject(ship))

          {

                    ship.gotoAndPlay(6);

                    vijand.gotoAndPlay(4);

                    Levens = Levens - 1;

                    ship = new Personage();

                    ship.x = Math.random() * stage.stageWidth;

                    ship.y = stage.stageHeight + ship.height / 2;

                    stage.addChild(ship);

                    stage.addChild(vijand);

                    vijand = null;

          }

          if (vijand != null && laser != null && vijand.hitTestObject(laser))

          {

                    vijand.gotoAndPlay(4);

                    stage.removeChild(laser);

                    vijand = null;

                    laser = null;

                    numberOfKilledEnemies = numberOfKilledEnemies + 1;

                    showscore.text = String(numberOfKilledEnemies);

                    localhoogste.data.score = numberOfKilledEnemies;

                    vijand = new enemy();

                    vijand.x = Math.random() * stage.stageWidth;

                    vijand.y = vijand.y -5;

                    stage.addChild(vijand);

          }

}

function fl_SetKeyPressed_2(event:KeyboardEvent):void

{

          switch (event.keyCode)

          {

                    case Keyboard.UP :

                              {

                                        upPressed = true;

                                        break;

                              };

                    case Keyboard.DOWN :

                              {

                                        downPressed = true;

                                        break;

                              };

                    case Keyboard.LEFT :

                              {

                                        leftPressed = true;

                                        break;

                              };

                    case Keyboard.RIGHT :

                              {

                                        rightPressed = true;

                                        break;

                    }

          }

};

function fl_UnsetKeyPressed_2(event:KeyboardEvent):void

{

          switch (event.keyCode)

          {

                    case Keyboard.UP :

                              {

                                        upPressed = false;

                                        break;

                              };

                    case Keyboard.DOWN :

                              {

                                        downPressed = false;

                                        break;

                              };

                    case Keyboard.LEFT :

                              {

                                        leftPressed = false;

                                        break;

                              };

                    case Keyboard.RIGHT :

                              {

                                        rightPressed = false;

                                        break;

                    }

          }

};

function onKeyPressed(evt:KeyboardEvent):void

{

          switch (evt.keyCode)

          {

                    case Keyboard.SPACE :

                              spaceBar = true;

                              break;

          }

}

function onKeyUP(evt:KeyboardEvent):void

{

          switch (evt.keyCode)

          {

                    case Keyboard.SPACE :

                              spaceBar = false;

                              break;

          }

}

function updateGame(evt:Event):void

{

          if (spaceBar)

          {

                    if (laser == null)

                    {

                              laser = new Laser();

                              laser.x = ship.x;

                              laser.y = ship.y - 40;

                              stage.addChild(laser);

                              channel = lazer.play();

                    }

          }

          if (laser != null)

          {

                    laser.y = laser.y - 10;

          }

          if (laser && laser.y <= 0)

          {

                    stage.removeChild(laser);

                    laser = null;

          }

          showlife.text = String(Levens);

}

function gameOver(evt:Event):void

{

          if (Levens < 1)

          {

                    stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);

                    stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUP);

                    stage.removeEventListener(Event.ENTER_FRAME, updateGame);

                    ship.removeEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

                    stage.removeEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);

                    stage.removeEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

                    stage.removeEventListener(Event.ENTER_FRAME, gameOver);

                    ship.removeEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);

                    ship.removeEventListener(Event.ENTER_FRAME, enter_frame);

                    {

                              if (vijand != null)

                              {

                                        stage.removeChild(vijand);

                                        vijand = null;

                              }

                              if (ship != null)

                              {

                                        stage.removeChild(ship);

                                        ship = null;

                              }

                              if (laser != null)

                              {

                                        stage.removeChild(laser);

                                        laser = null;

                              }

                    }

                    gotoAndStop(4);

          }

}

}