我有两个事件监听器调用两个函数,第一个是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函数工作正常。如果我能得到一些帮助,说明为什么我会收到这个错误,那就太棒了。
答案 0 :(得分:1)
你在checkKeyDown函数的末尾忘记了一个大括号(char'}')。