0

老实说,我没有flash的经验。所以,如果有人能指出我必要的方向。那很好啊。我的任务是构建一个倒计时计时器,它具有http://www.online-stopwatch.com/上可以找到的所有功能。 您可能会争辩说,为什么我不使用我提供的链接中找到的那个,但我是任务是创建一个个性化的背景和布局,与链接中的完全不同。

我看过一些教程,但没有人能指出我需要的方向。感谢您的帮助。

4

2 回答 2

0

通常,关于 SO 的问题表明 OP 没有尝试解决他们的问题,但我只是碰巧有这个问题,可以帮助别人解决这个问题,所以你很幸运!我无法帮助您学习如何使用 Flash 本身,这是您需要的逻辑。

下面的课程应该照顾你正在寻找的东西:

myClockMC是一个包含五个文本字段的影片剪辑,分别是天、小时、分钟、秒和毫秒。您可能需要调整此类中的名称和路径以使其与您的构造一起使用。

使用此签名来实例化:

var myClock:CountdownClock = new CountdownClock( myClockMC, 2014, 8, 20 );


package
{
    import flash.display.MovieClip;
    import flash.events.Event;

    public class CountdownClock extends MovieClip
    {
        public function CountdownClock( clip:MovieClip, targetMonth:Number, targetDay:Number, targetYear:Number )
        {
            trace('new CountdownClock');

            addEventListener( Event.ENTER_FRAME, update );
        }

        private function update( evt:Event ):void
        {
            var date:Date = new Date();
            var targetDate:Date = new Date( targetYear, targetMonth, targetDay );
            var currentYear:Number = date.getFullYear();
            var currentTime:Number = date.getTime();
            var targetTime:Number = targetDate.getTime();
            var diff:Date = new Date( targetDate - date );

            var timeLeft:Number = targetTime - currentTime;
            var millSecs:Number = diff.getMilliseconds();
            var seconds:Number = Math.floor(timeLeft / 1000);
            var minutes:Number = Math.floor(seconds / 60);
            var hours:Number = Math.floor(minutes / 60);
            var days:Number = Math.floor(hours / 24);

            seconds = String(seconds % 60);
            if (seconds.length < 2)
            {
                seconds = "0" + seconds;
            }

            minutes = String(minutes % 60);
            if (minutes.length < 2)
            {
                minutes = "0" + minutes;
            }

            hours = String(hours % 24);
            if (hours.length < 2)
            {
                hours = '0' + hours;
            }

            days = String(days);
            if (days.length < 2) 
            {
                days = '0' + days;
            }

            clip.daysWindow.text = days;
            clip.hoursWindow.text = hours;
            clip.minutesWindow.text = minutes;
            clip.secondsWindow.text = seconds;
            clip.millSecsWindow.text = millSecs;

            if(days == '00' && hours == '00' && minutes == '00' && seconds == '00')
            {
                updateAfterReachingDate( clip );
            }
        }

        private function updateAfterReachingDate( mc:MovieClip ):void
        {
            removeEventListener( Event.ENTER_FRAME, update );

            // handle timer target reached
        }
    }
}
于 2013-09-26T22:46:05.073 回答
0

这真的不是一个答案就能回答的问题,更像是你需要完全学习action-script 3.0,然后用这些知识来编写这个程序。 是一本书的链接,我发现这本书非常适合学习 action-script 3.0 和一般的 flash。如果您不想了解有关 action-script 3.0 的所有内容,请考虑查找有关它的基础知识的教程,然后特别是Timer类。如果您想要一个包含您引用的网站的所有内容的好程序,那么您可能应该只阅读 Essential Actin 脚本 3 书,但是如果您时间紧迫,您可以快速学习基础知识并尝试将一些东西放在一起,但是它不会很好。

于 2013-09-26T22:21:39.473 回答