0

我一直收到这个错误,我不知道如何修复它,它在另一个类中工作,所以它应该在这里工作,对吧?(我把它从那个类移到这个类)唯一的区别是这个类扩展了“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);
}
4

2 回答 2

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 设置在其他地方?

于 2013-02-22T19:07:11.950 回答
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);
}
于 2013-02-22T19:07:56.037 回答