所以我试图为我的YT制作一个AvoiderGame教程,我发现了一个关于该程序的故障。 (它告诉我Timer对象接受0参数)
然后我认为我可能错过了某个导致错误的括号或某些东西,但就目前而言,它似乎是一个Flash Professional Glitch
信息:
文件:Enemy.as(链接到main.fla
文件中的“Enemy”movieclip符号)
package{
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Enemy extends MovieClip{
private var speeds:Array = new Array();
private var counter:Timer = new Timer(1); <-- Line 8
private var speed:int = 0;
public function Enemy(xPos:int, yPos:int, speeds:Array){
x = xPos;
y = yPos;
this.speeds = speeds;
initalize();
counter.start();
counter.addEventListener(TimerEvent.TIMER, update);
}
protected function initalize(){
speed = speeds[0] + Math.round(Math.random()*(speeds[1] - speeds[0]));
}
protected function update(e:TimerEvent){
y += speed;
}
public function setPos(xVal:int, yVal:int){
x = xVal;
y = yVal;
}
public function movePos(xVal:int, yVal:int){
x += xVal;
y += yVal;
}
}
}
(我用“用户”替换了我的用户名,因此人们不会知道我的真实姓名)
此代码给了我以下错误:
C:\ Users \ User \ Desktop \ Flash Stuff \ Avoider DeluX \ Enemy.as,第8行, 第35列1136:参数数量不正确。预期为0。
C:\ Users \ User \ Desktop \ Flash Stuff \ Avoider DeluX \ Enemy.as,第8行, 第35列1136:参数数量不正确。预期为0。
(是的,错误确实出现了2次)
答案 0 :(得分:1)
这让我觉得您可能在命名空间中发生了另一个Timer
类冲突。每次尝试精确全名:
private var counter:flash.utils.Timer = new flash.utils.Timer(1);
答案 1 :(得分:0)
我认为这是参数的问题。我注意到的一件事是计时器接受2个参数。第一个是延迟,以毫秒为单位。第二个是repeatCount,它是可选的
正如文档所说
不推荐低于20毫秒的延迟。
所以我建议使用超过20毫秒或1000秒的数字。