actionscript-3 - ActionScript 3 中的计时器

标签 actionscript-3 actionscript flash-cs3

我有问题,我需要创建计时器,但我想将一个变量传递给它,该怎么做?在 AS3 中可以吗?

我试过这样的:

            bonusPlayer1Timer = new Timer(5000);
            bonusPlayer1Timer.addEventListener(TimerEvent.TIMER, bonusChanges(player1));
            bonusPlayer1Timer.addEventListener(TimerEvent.TIMER_COMPLETE, bonusChangesRemove(player1));
            bonusPlayer1Timer.start();

function bonusChanges(event:TimerEvent, playerBonus:Player):void {
    switch (playerBonus.bonus) {
        case 0 :
            playerBonus.multipleShooting = false;
            playerBonus.bonus = -1;
            break;
...}}

但是我有错误:

1067: Implicit coercion of a value of type Player to an unrelated type flash.events:TimerEvent.
1136: Incorrect number of arguments.  Expected 2.

这个错误在粗体中。

我可以这样使用吗?或者我必须为我的每个玩家创建两个相同的函数,因为我不允许将任何不同的参数传递给计时器函数?

谢谢,

最佳答案

创建一个扩展 Timer 类的类并为 Player 添加一个属性。

public class PlayerTimer extends Timer
{
    public var thePlayer:Player;

    public function PlayerTimer(delay:Number, repeatCount:int=0)
    {
        super(delay, repeatCount);
    }       
}

使用您的示例,代码将如下所示:

bonusPlayer1Timer = new PlayerTimer(5000);
bonusPlayer1Timer.thePlayer = new Player();
bonusPlayer1Timer.addEventListener(TimerEvent.TIMER, bonusChanges);
bonusPlayer1Timer.addEventListener(TimerEvent.TIMER_COMPLETE, bonusChangesRemove);
bonusPlayer1Timer.start();

function bonusChanges(event:TimerEvent):void {
    var playerBonus:Player = PlayerTimer(event.target).thePlayer; 
    switch (playerBonus.bonus) {
        case 0 :
            playerBonus.multipleShooting = false;
            playerBonus.bonus = -1;
            break;
...}}

关于actionscript-3 - ActionScript 3 中的计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697649/

相关文章:

flash - 保存没有文件引用的下载

flash - 如果没有 System.gc() 调用,对象不会被删除

flash - 如何在不影响比例的情况下调整影片剪辑的大小?

actionscript-3 - undefined variable addChild?

ios - 设置加载器类的 z-index

image - 在 ActionScript 3 中将 JPG 读入 BitmapData(JPG 位于 APK 文件内)

php - 我如何知道请求是否来自 flash swf?

javascript - 使用 mailto : 截取嵌入对象并嵌入到电子邮件中

flash - 在 Box2D 中绘制自定义多边形

c#-3.0 - Flash 和 C# 如何通信?