因此,我正在開發一個需要鍵盤輸入的Flash項目。在舞臺上有一個從上面看到的「車」實例應該是旋轉和驅動旋轉的方向。這是我已經把迄今在AS3:在AS3中獲取鍵盤輸入的問題
//Required stuff
import flash.ui.Keyboard;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.display.Stage;
import flash.display.MovieClip;
Car.addEventListener(Event.ENTER_FRAME, this.RunGame);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
//Variables
var keys:Array = []
var vDrive:Number = 3; //Car's current base speed
var vx:Number = 0; //Speed along x axis
var vy:Number = 0; //Speed along y axis
var vMax:Number = 30; //Top speed
var vRot:Number = 3; //Rotation speed
var vAcc:Number = 1.1; //Factor for acceleration
var vDeAcc:Number = 0.90; //Factor for de-acceleration
//Game Loop
RunGame();
function RunGame():void
{
// Drive forwards
if (keys[Keyboard.UP])
{
if (vDrive < vMax)
vDrive += vAcc;
}
// Reverse
if (keys[Keyboard.DOWN])
{
if (vDrive > vMax)
vDrive *= vAcc;
}
// Turn right
if (keys[Keyboard.RIGHT])
{
Car.rotation += vRot;
}
// Turn left venstre
if (keys[Keyboard.LEFT])
{
Car.rotation -= vRot;
}
//Movement
// Friction
vDrive *= vDeAcc;
//Calculating movement vector
vx = vDrive * Math.cos(toRad(Car.rotation));
vy = vDrive * Math.sin(toRad(Car.rotation));
//Update car position
Car.x -= vx ;
Car.y -= vy;
}
然而,當我運行程序,箭頭鍵似乎並沒有做任何事情。 我也得到了以下編譯器警告,這兩個「onkeydown事件」和「的onkeyup」:
遷移問題:onKeyDown事件處理函數不是由Flash Player自動在ActionScript 3.0中運行時觸發 。您 必須先註冊此處理使用addEventListener (「的keyDown」,callback_handler)爲該事件
試圖增加它建議只是讓錯誤的說法是沒有定義callback_handler。 我現在陷入困境,試圖弄清楚如何使鍵盤輸入工作。有人知道嗎?