code:
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.Stage;
stage.addEventListener(KeyboardEvent.KEY_UP,released);
stage.addEventListener(KeyboardEvent.KEY_DOWN,pressed);
addEventListener(Event.ENTER_FRAME,loop);
var isRight = false;
var isLeft = false;
var isSpace = false;
var gravity = 10;
function released(event:KeyboardEvent)
{
if(event.keyCode == Keyboard.RIGHT){
isRight = false;
}
if(event.keyCode == Keyboard.LEFT){
isLeft = false;
}
}
function pressed(event:KeyboardEvent)
{
if(event.keyCode == Keyboard.RIGHT){
isRight = true;
}
if(event.keyCode == Keyboard.LEFT){
isLeft = true;
}
if(event.keyCode == Keyboard.SPACE){
isSpace = true;
}
}
function loop(e:Event)
{
if(player.y <= 496){
player.y += gravity;
}
if(isRight){
player.x += 10;
}
if(isLeft){
player.x += 10;
}
if(isSpace){
if(player.y >= 466){
player.y -= 1;
gravity = -10;
}
else{
gravity = gravity * -1;
isSpace = false;
}
}
}
full error is:
TypeError: Error #1009: Cannot access a property or method of a null object reference. at Untitled_2_fla::MainTimeline/loop()[Untitled_2_fla.MainTimeline::frame1:38]
I don't understand what it's trying to tell me. Plz help. Thanks.
I think the loop function is called before the player object is initialized. so you should added the little code. refer a this.
function loop(e:Event)
{
if(!player) return;
if(player.y <= 496){
player.y += gravity;
}
if(isRight){
player.x += 10;
}
if(isLeft){
player.x += 10;
}
if(isSpace){
if(player.y >= 466){
player.y -= 1;
gravity = -10;
}
else{
gravity = gravity * -1;
isSpace = false;
}
}
}