功能未定义,没有明显的原因

时间:2013-10-22 06:35:50

标签: actionscript-3 function keyboard

我有两个事件监听器调用两个函数,第一个是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函数工作正常。如果我能得到一些帮助,说明为什么我会收到这个错误,那就太棒了。

1 个答案:

答案 0 :(得分:1)

你在checkKeyDown函数的末尾忘记了一个大括号(char'}')。