0

checkKeyDown最初の関数と2 番目の関数の 2 つの関数を呼び出す 2 つのイベント リスナーがあり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 に答える