gpt4 book ai didi

actionscript-3 - AS3 addEventListener 在我的自定义类中不是可识别的方法

转载 作者:行者123 更新时间:2023-12-02 09:22:45 24 4
gpt4 key购买 nike

我想要一个名为 Commands 的类,我可以将不同的按键和功能放入其中,以控制游戏状态和变量,以便快速轻松地进行游戏测试。我正在尝试这个,但它不起作用...

package gameTesting {
import flash.events.KeyboardEvent;
import flash.events.*;
import flash.ui.Keyboard;
import flash.display.*;
import flash.events.EventDispatcher;

public class Commands {

public function Commands() {
addEventListeners();
}

public function addEventListeners():void{
addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
}

public function keyDown(ke:KeyboardEvent):void{
trace("key pressed");
}

}

}

抛出这个错误:

C:...\Commands.as, Line 15, Column 4    1180: Call to a possibly undefined method addEventListener.

因此,我尝试让我的类扩展一些继承 EventDispatcher 方法的东西:

//...
public class Commands extends DisplayObject{
// ...

但是当我试图实例化这个类时,我的主 .as 文件抛出了这个错误:

ArgumentError: Error #2012: Commands$ class cannot be instantiated.

我也尝试过使用 static 关键字只是为了 lols,但没有骰子。

我在这里错过了什么?

顺便说一下,我这样做的原因只是为了通过简单地删除实例化此类的代码行来删除此功能(这样用户就无法使用它)。我认为这很漂亮,但如果这看起来很愚蠢,一定要大声说出来!

最佳答案

尝试将stage传递给Commands,这样你就可以在stage上添加addEventListener。

import flash.display.Stage;

public class Commands {

public function Commands(stage:Stage) {
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
}

public function keyDown(ke:KeyboardEvent):void{
trace("key pressed");
}

}

关于actionscript-3 - AS3 addEventListener 在我的自定义类中不是可识别的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com