How do I create a countdown for a bus schedule in actionscript 3, I've searched online but mostly countdowns for holidays or a specific date appear. I n开发者_Python百科eed it to be recurring, bus runs every 30 mins.
package
{
    import flash.display.Sprite;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.Event;
    public class countdownTimer extends Sprite
    {
        private var timer:Timer = new Timer(1000);
        private var countdown:Number = 60;
        public function countdownTimer():void
        {
            init();
        }
        private function init():void
        {
            timer.start();
            timer.addEventListener(TimerEvent.TIMER, action);
        }
        private function action(e:TimerEvent):void
        {
            countdown--;
            trace(countdown);
        }
    }
}
Its just basic..hope it will helps u.
I made a small flash application to give you an idea as to how you can approach a bus schedule with a countdown:
schedule.xml:
<?xml version="1.0" encoding="utf-8" ?>
<schedule>
    <bus>
        <name>1</name>
        <times>
            <time>1300</time>
            <time>1400</time>
            <time>1500</time>
            <time>1600</time>
            <time>1700</time>
        </times>
    </bus>
    <bus>
        <name>2</name>
        <times>
            <time>1300</time>
            <time>1400</time>
            <time>1500</time>
            <time>1600</time>
            <time>1700</time>
        </times>
    </bus>
</schedule>
Main.as(document class):
package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    [SWF(width="200", height="350", backgroundColor="0xFFFFFF", frameRate="32")]
    public class Main extends Sprite 
    {
        private var _scheduleUi:ScheduleUI;
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }// end function
        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            var urlLoader:URLLoader = new URLLoader(new URLRequest("xml/schedule.xml"));
            urlLoader.addEventListener(Event.COMPLETE, onUrlLoaderComplete);
        }// end function
        private function onUrlLoaderComplete(e:Event):void
        {
            _scheduleUi = new ScheduleUI(XML(URLLoader(e.target).data));
            addChild(_scheduleUi);
        }// end function
    }// end class
}// end package
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
internal class ScheduleUI extends Sprite
{
    private var _schedule:Schedule;
    private var _scheduleTextField:TextField;
    public function ScheduleUI(scheduleXml:XML)
    {
        _schedule = new Schedule(scheduleXml);
        _scheduleTextField = new TextField();
        _scheduleTextField.autoSize = TextFieldAutoSize.LEFT;
        _scheduleTextField.multiline = true;
        addChild(_scheduleTextField);
        addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }// end function
    private function onEnterFrame(e:Event):void { updateScheduleTextField() }
    private function updateScheduleTextField():void
    {
        var scheduleString:String = new String();
        for each(var bus:Bus in _schedule.getBuses())
        {
            scheduleString += "BUS: " + bus.name; 
            for each(var time:Time in bus.getTimes())
            {
                scheduleString += "\n\n" + "\t" + "Time: " + time + ", Counddown: " + time.getCountDown();
            }// end for each
            scheduleString += "\n\n";
        }// end for each
        _scheduleTextField.text = scheduleString;
    }// end function
}// end class
internal class Schedule
{
    private var _schedule:XML;
    public function Schedule(schedule:XML):void
    {
        _schedule = schedule;
    }// end function
    public function getBuses():Vector.<Bus>
    {
        var buses:Vector.<Bus> = new Vector.<Bus>();
        for each(var bus:XML in _schedule.bus) buses.push(new Bus(bus));
        return buses;
    }// end function
}// end function
internal class Bus 
{
    private var _bus:XML;
    public function get name():int { return _bus.name }
    public function Bus(bus:XML) { _bus = bus }
    public function getTimes():Vector.<Time>
    {
        var times:Vector.<Time> = new Vector.<Time>();
        for each(var time:XML in _bus.times.time) times.push(new Time(time));
        return times;
    }// end function
}// end class
internal class Time
{
    private var _time:XML;
    public function Time(time:XML) { _time = time }
    public function getCountDown():String
    {
        var hours:int = _time.toString().substring(0, 2);
        var minutes:int = _time.toString().substring(2, 4);
        var currentDate:Date = new Date();
        var date:Date = new Date();
        date.setUTCMilliseconds(0);
        date.setUTCSeconds(0);
        date.setUTCMinutes(minutes);
        date.setUTCHours(hours - 1);
        var countDownDate:Date = new Date();
        countDownDate.setTime((date.getTime() - currentDate.getTime()))
        return (countDownDate.getTime() > 0) ? countDownDate.toTimeString().substring(0, 8) : String(0);
    }// end function
    public function toString():String { return _time }
}// end class
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论