我對AS3很新,我正在嘗試製作一個簡單的Flash遊戲原型。目前,所有我想要做的就是讓閃光燈告訴我,它實際上是接收用戶的鍵盤輸入,但我遇到了以下2個問題:我在哪裏添加EventDispatcher和函數問題
在我行事件偵聽器到舞臺,我得到一個Error1061:調用可能未定義的方法addEventListener通過靜態類型類的引用。
- 我的研究使我相信,這是因爲我的背層類不擴展EventDispatcher,但我無法擴展,因爲背層必須擴展MovieClip的
在同樣的精神,我想告訴代碼,當發生這樣的事件時,執行命名的函數,但是我得到一個錯誤1120,告訴我兩者都是未定義的屬性。
- 我想這可能是因爲該類沒有擴展事件調度程序呢?
我的AS3的理解是所有自學的,我仍然努力學習語言的禮儀,所以我道歉,如果這是一個非常簡單的問題,但我一直沒能只是從谷歌搜索的工作還沒有找到答案。 這裏是我的代碼:
package {
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.Stage;
import flash.events.EventDispatcher;
public class Backlayer extends MovieClip
{
Stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
Stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
public function keyDownHandler(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT)
{
trace("left pressed");
}
else if(e.keyCode == Keyboard.RIGHT)
{
trace("right pressed");
}
else if(e.keyCode == Keyboard.UP)
{
trace("up pressed");
}
else if(e.keyCode == Keyboard.DOWN)
{
trace("down pressed");
}
}
public function keyUpHandler(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT)
{
trace("left released");
}
else if(e.keyCode == Keyboard.RIGHT)
{
trace("right released");
}
else if(e.keyCode == Keyboard.UP)
{
trace("up released");
}
else if(e.keyCode == Keyboard.DOWN)
{
trace("down released");
}
}
}
}
謝謝,這讓我感動。 – Rith