访问未定义的属性键UpHandler


Scene 1, Layer 'script', Frame 1, Line 39
1120: Access of undefined property keyUpHandler.

好的,所以我正在按照本教程 http://as3gametuts.com/2012/04/05/platformer-8/^ 只是为了有一个来源,而不是自己声称作品

我已创建

stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);

稍后在代码中,我有:

function keyUpHandler(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.LEFT){
        leftPressed = false;
    } else if(e.keyCode == Keyboard.RIGHT){
        rightPressed = false;
    } else if(e.keyCode == Keyboard.UP){
        upPressed = false;
    } else if(e.keyCode == Keyboard.DOWN){
        downPressed = false;
    }   
}

我的错误消息在顶部,关于我为什么得到这个的任何想法?感谢您阅读:P

我的整个代码:

var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftBumping:Boolean = false;
var rightBumping:Boolean = false;
var upBumping:Boolean = false;
var downBumping:Boolean = false;
var leftBumpPoint:Point = new Point(-30, -55);
var rightBumpPoint:Point = new Point(30, -55);
var upBumpPoint:Point = new Point(0, -120);
var downBumpPoint:Point = new Point(0, 0);
var scrollX:Number = 0;
var scrollY:Number = 500;
var xSpeed:Number = 0;
var ySpeed:Number = 0;
var speedConstant:Number = 4;
var frictionConstant:Number = 0.9;
var gravityConstant:Number = 1.8;
var jumpConstant:Number = -35;
var maxSpeedConstant:Number = 18;
var doubleJumpReady:Boolean = false;
var upReleasedInAir:Boolean = false;
var carrotCollected:Boolean = false;
//var carrotGathered.visible = false; //HER
var snowmanHappy:Boolean = false;
var openDoor:Boolean = false;

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void{
    if(back.collisions.hitTestPoint(player.x + leftBumpPoint.x, player.y + leftBumpPoint.y, true)){
        //trace("leftBumping");
        leftBumping = true;
    } else {
        leftBumping = false;
    }
    if(back.collisions.hitTestPoint(player.x + rightBumpPoint.x, player.y + rightBumpPoint.y, true)){
        //trace("rightBumping");
        rightBumping = true;
    } else {
        rightBumping = false;
    }
    if(back.collisions.hitTestPoint(player.x + upBumpPoint.x, player.y + upBumpPoint.y, true)){
        //trace("upBumping");
        upBumping = true;
    } else {
        upBumping = false;
    }
    if(back.collisions.hitTestPoint(player.x + downBumpPoint.x, player.y + downBumpPoint.y, true)){
        //trace("downBumping");
        downBumping = true;
    } else {
        downBumping = false;
    }   

    if(leftPressed){
        xSpeed -= speedConstant;
        player.scaleX = -1;
    } else if(rightPressed){
        xSpeed += speedConstant;
        player.scaleX = 1;
    }
    /*if(upPressed){
        ySpeed -= speedConstant;
    } else if(downPressed){
        ySpeed += speedConstant;
    }*/
    if(leftBumping){
        if(xSpeed < 0){
            xSpeed *= -0.5;
        }
    }
    if(rightBumping){
        if(xSpeed > 0){
            xSpeed *= -0.5;
        }
    }
    if(upBumping){
        if(ySpeed < 0){
            ySpeed *= -0.5;
        }
    }
    if(downBumping){
        if(ySpeed > 0){ 
            ySpeed = 0; 
        }
        if(upPressed){ 
            ySpeed = jumpConstant; 
        }
        //DOBBELTHOPP..
        if(upReleasedInAir == true){
            upReleasedInAir = false;
        }
        if(doubleJumpReady == false){
            doubleJumpReady = true;
        }
    } else { 
        ySpeed += gravityConstant; 
        //DOBBELTHOPP
        if(upPressed == false && upReleasedInAir == false){
            upReleasedInAir = true;
        }
        if(doubleJumpReady && upReleasedInAir){
            if(upPressed){ 
                doubleJumpReady = false;
                ySpeed = jumpConstant; //set the y speed to the jump constant
            }
        }
    }
    if(xSpeed > maxSpeedConstant){ //moving right
        xSpeed = maxSpeedConstant;
    } else if(xSpeed < (maxSpeedConstant * -1)){ //moving left
        xSpeed = (maxSpeedConstant * -1);
    }
    xSpeed *= frictionConstant;
    ySpeed *= frictionConstant;
    if(Math.abs(xSpeed) < 0.5){
        xSpeed = 0;
    }
    scrollX -= xSpeed;
    scrollY -= ySpeed;
    back.x = scrollX;
    back.y = scrollY;
    sky.x = scrollX * 0.2;
    sky.y = scrollY * 0.2;
    if(carrotCollected == false){
        if(player.hitTestObject(back.carrot)){ 
            back.carrot.visible = false;
            carrotGathered.visible = true; // HER
            carrotCollected = true;
        }
    }
    if(snowmanHappy == false){
        if(carrotCollected == true){
            if(player.hitTestObject(back.snowMan)){
                carrotGathered.visible = false; // HER
                back.snowMan.gotoAndPlay(2);
                snowmanHappy = true;
            }
        }
    }
    if(openDoor == false){
        if(snowmanHappy == true){
            if(player.hitTestObject(back.snowMan)){
                back.lockedDoor.gotoAndStop(2);
                openDoor = true;
            }
        }
    }

}
function keyDownHandler(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.LEFT){
        leftPressed = true;
    } else if(e.keyCode == Keyboard.RIGHT){
        rightPressed = true;
    } else if(e.keyCode == Keyboard.UP){
        upPressed = true;
    } else if(e.keyCode == Keyboard.DOWN){
     downPressed = true;
     /*if(openDoor && player.hitTestObject(back.other.lockedDoor)){
          gotoAndStop(2);
     }*/
}


function keyUpHandler(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.LEFT){
        leftPressed = false;
    } else if(e.keyCode == Keyboard.RIGHT){
        rightPressed = false;
    } else if(e.keyCode == Keyboard.UP){
        upPressed = false;
    } else if(e.keyCode == Keyboard.DOWN){
        downPressed = false;
    }   
 }
 }

您的 keyuphandler 被 keyDownHandler 吞没。检查您的{,并},因为您将其注释掉了。

相关内容

  • 没有找到相关文章

最新更新