0
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;
    }   
 }
 }
4

1 に答える 1

1

keyuphandlerはKeyDownHandlerに含まれています。あなたがそれをコメントアウトしたのであなた{とをチェックしてください。}

于 2012-11-21T01:16:10.063 に答える