AS3 Timer在Movieclip Class中没有做任何事情

时间:2015-08-24 11:50:14

标签: actionscript-3 timer

我有一个文档类,它循环一些JSON数据并添加一个" tileMc"在屏幕上显示一些信息。我需要对每个影片剪辑中的一个文本字段执行某些操作,但是当我跟踪没有任何内容时,计时器根本没有响应。

在文档类中,我在开始时初始化磁贴

public var tileMc: tile;

然后在ive中加载了所有json和所有内容后的函数

tileMc = new tile();

                tilePosition += (tileMc.height - 15); //offset between
                tileMc.y = tilePosition;
                tileMc.x = xPos;
                spriteArray.push(tileMc);
                allSprites.push(tileMc);
                var destName = parsedJSON.data[i].destinationCity.toString();
                tileMc.box.departureTime.text = parsedJSON.data[i].scheduledGateTime.toString();
                tileMc.box.destination.text = destName;
                tileMc.box.flightnum.text = (parsedJSON.data[i].airlineCode.toString() + parsedJSON.data[i].flightNumber.toString());
                tileMc.box.status.text = parsedJSON.data[i].remarksWithTime.toString();

                var TF: TextFormat = tileMc.box.status.getTextFormat(0, 1)

                stage.addChild(tileMc);

这一切都完美无缺,因为我想要它。

然后我进入了Tile类,这样我就可以在它太长的时候更改destination.text

package  {

import flash.display.MovieClip;
import flash.utils.Timer;
import flash.text.TextField;
import flash.events.TimerEvent;

public class tile extends MovieClip {

     public var marqueeTimer:Timer;

    public function tile() {

       trace("TEST 1");
        marqueeTimer = new Timer(0);
        marqueeTimer.addEventListener(TimerEvent.TIMER, onMarqueeTick);

    }

    private function onMarqueeTick(ev:TimerEvent): void
    {

        trace("TEST 2");
    }

    public function marquee(delay:int): void
    {
        marqueeTimer.stop();
        if (delay >= 0)
        {
            marqueeTimer.delay = delay;
            marqueeTimer.start();
        }
    }
}

}

只跟踪TEST1为什么定时器不工作?

1 个答案:

答案 0 :(得分:0)

好吧也许这样用:

 package  {

        import flash.display.MovieClip;
        import flash.utils.Timer;
        import flash.text.TextField;
        import flash.events.TimerEvent;

        public class tile extends MovieClip {

             public var marqueeTimer:Timer;

            public function tile() {

               trace("TEST 1");
                marqueeTimer = new Timer(0);
                marqueeTimer.addEventListener(TimerEvent.TIMER, onMarqueeTick);

                marqueeTimer.start();
            //if u add this. test2 also will be in your output
            }

            private function onMarqueeTick(ev:TimerEvent): void
            {

                trace("TEST 2");
            }

            public function marquee(delay:int): void
            {
                marqueeTimer.stop();
                if (delay >= 0)
                {
                    marqueeTimer.delay = delay;
                    marqueeTimer.start();
                }
            }
        }
        }