Actionscript 3 闪存as3错误1180,我不知道';我不明白
因此,我收到了一条带有以下代码的错误1180消息:Actionscript 3 闪存as3错误1180,我不知道';我不明白,actionscript-3,flash,Actionscript 3,Flash,因此,我收到了一条带有以下代码的错误1180消息: package objects.moving.dudes { import flash.utils.Timer; import objects.moving.Moving; import misc.MoveTimer; public class Dude extends Moving { public function Dude() { addEventListener(E
package objects.moving.dudes {
import flash.utils.Timer;
import objects.moving.Moving;
import misc.MoveTimer;
public class Dude extends Moving {
public function Dude() {
addEventListener(Event.ADDED_TO_STAGE, stageAddHandler);
}
public var theMoveTimer;
public function stageAddHandler(e:Event) {
addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
removeEventListener(Event.ADDED_TO_STAGE, stageAddHandler);
}
public function keyPressed(e:KeyboardEvent) {
theMoveTimer = new MoveTimer(e.keyCode);
}
}
}
它说,“调用一个可能未定义的方法MoveTimer”
下面是MoveTimer类:
package misc {
import flash.utils.Timer;
class MoveTimer {
private const TIMER_LENGTH = 500;
public function MoveTimer(myKeyCode:int) {
keyCode = myKeyCode;
}
public var keyCode:int;
public var timer = new Timer(TIMER_LENGTH);
}
}
我已经研究了错误1180的几种不同的可能解决方案,但没有一种适用于此。有人知道我为什么会犯这个错误吗
编辑:我在将代码传输到stackoverflow时犯了一些错误,我已经做了一些更改,使其看起来更像我的实际代码。正如我看到的,您忘记将变量
MoveTimer
键入为MoveTimer
,并且MoveTimer
类没有导入到Dude
类中。尝试将移动计时器的声明更改为:
public var theMoveTimer:MoveTimer;
并将以下行添加到导入中:import misc.MoveTimer;
我想你的男生课程的第一行应该以“套餐”开头。这就是Binou建议的更改,即:将MoveTimer类型添加到MoveTimer声明中,并在Dude类中导入MoveTimer类。解决方案!我觉得自己很愚蠢,但我需要在我的
MoveTimer
类中添加单词public
:
package misc {
import flash.utils.Timer;
public class MoveTimer { //This is the line where I added the word 'public'. See my question for the incorrect version of this line.
private const TIMER_LENGTH = 500;
public function MoveTimer(myKeyCode:int) {
keyCode = myKeyCode;
}
public var keyCode:int;
public var timer = new Timer(TIMER_LENGTH);
}
}
对不起,我在传输代码时做得不好。我试图删除所有与问题无关的内容,但我忘记了添加原始代码中的导入部分(实际上我在原始代码中导入了MoveTimer)。我已编辑我的问题以包含导入语句。另外,如果我像这样键入MoveTimer:
public var theMoveTimer:MoveTimer代码>,我仍然得到1180,我得到一个1046,上面写着:找不到类型或类型不是编译时常量:MoveTimer,引用行public var theMoveTimer:MoveTimer代码>我非常困惑,因为我不理解错误…哦,不,我又犯了一次!我的实际代码开头包含单词public;我只是试图简化stackoverflow的代码,但不小心遗漏了重要的部分。我将对它进行编辑以反映这一点。除非你知道一些我不知道的事情,否则你不应该以“public”开始上课。类应以“package”开头。然后,您的类应该保存在一个文件夹结构中(相对于编译.swf的位置),该结构对应于“package”之后描述的路径。哦,天哪,我又这样做了!我讨厌我在复制和粘贴方面的无能!但是你猜怎么着,一开始我误解了你刚才的评论,它帮助我解决了这个问题,所以谢谢你,你是个救命恩人!我想我会再次编辑我的问题,以显示我的问题是什么,然后我会回答我的问题。