我一直收到这个错误,我不知道如何修复它,它在另一个类中工作,所以它应该在这里工作,对吧? (我将它从那个类移到了这个类)唯一的区别是这个类扩展了'Game'而另一个类扩展了'MovieClip'
1067: Implicit coercion of a value of type flash.utils:Timer to an unrelated type Function.
public static var timeLeft;
public function GamePlay() {
// Start timer
var timeCounter:Timer = new Timer(1000, timeLeft)
timeCounter.addEventListener(TimerEvent.TIMER, timeCounter);
timeCounter.start();
}
// Handle time counter
public function timeCounter(e:TimerEvent):void {
timeLeft--;
trace(timeLeft);
}
答案 0 :(得分:1)
您需要为Timer对象和侦听器函数指定不同的名称:
public static var timeLeft:int;
var timer:Timer = new Timer(1000, timeLeft)
timer.addEventListener(TimerEvent.TIMER, timeCounter);
timer.start();
public function timeCounter(e:TimerEvent):void {
timeLeft--;
trace(timeLeft);
}
我假设timeLeft设置在其他地方?
答案 1 :(得分:0)
您的功能和Timer
都被称为timeCounter
,因此它认为您正在尝试将Timer
作为函数传递(因此错误)。你应该重命名两个中的一个,在这里我重命名了这个函数:
public static var timeLeft;
// Start timer
var timeCounter:Timer = new Timer(1000, timeLeft)
timeCounter.addEventListener(TimerEvent.TIMER, timeCountHandler);
timeCounter.start();
// Handle time counter
public function timeCountHandler(e:TimerEvent):void {
timeLeft--;
trace(timeLeft);
}