0

我有两个事件监听器调用两个函数,第一个checkKeyDown,然后是第二个checkKeyUp

package  {

import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.ui.Keyboard;


public class Code extends MovieClip {

    var charSpeed:int = 0;
    var velocity:int = 0;
    var gravity:Number = 1;
    var Jump:Boolean = false;


    public function startGame(){
         stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeyDown);
         stage.addEventListener(KeyboardEvent.KEY_UP, checkKeyUp);
     }

    public function Code() {
        // constructor code
    }

    function checkKeyDown(evt:KeyboardEvent){
        if (evt.keyCode == Keyboard.LEFT){
            charSpeed -= 10;
        }
        if (evt.keyCode == Keyboard.RIGHT){
            charSpeed += 10;
        }
        if (evt.keyCode == Keyboard.DOWN){
            if(!Jump){
                velocity -= 14;
                Jump = true;
            }
        }

    function checkKeyUp(e:KeyboardEvent){
        if (e.keyCode == Keyboard.LEFT){
            charSpeed = 0;
        }
        if (e.keyCode == Keyboard.RIGHT){
            charSpeed = 0;
        }
    }

当我第一次输入代码时,我首先执行了checkKeyDown函数,当我运行它时,它运行良好(当然没有 checkKeyUp 事件监听器)。在此之后,我将事件侦听器和 checkKeyUp 函数添加到代码中,但我收到错误消息“1120:访问未定义的属性 checkKeyUp”。我不知道为什么会出现这种情况,因为 checkKeyDown 函数工作正常。如果我能得到一些帮助来解释为什么会出现这个错误,那就太好了。

4

1 回答 1

1

您忘记了 checkKeyDown 函数末尾的大括号 (char '}')。

于 2013-10-22T07:02:46.577 回答