0

正直なところ、私はフラッシュの経験がありません。誰かが私を必要な方向に向けることができれば。それは素晴らしいことです。私はhttp://www.online-stopwatch.com/にあるすべての機能を備えたカウントダウン タイマーを作成する任務を負っていました 。リンク内のものとは完全に異なる背景とレイアウトでパーソナライズされたものを作成することを任されました.

いくつかのチュートリアルを見てきましたが、必要な方向性を教えてくれるものはありません。お手伝いありがとう。

4

2 に答える 2

0

通常、OPの側で問題を解決しようとしないことを示すSOに関する質問はほとんど注目されませんが、たまたま他の誰かを助けてこれを手に入れたので、幸運です! Flash 自体の使い方を学ぶ手助けはできませんが、これが必要なロジックです。

次のクラスは、探しているものを処理する必要があります。

myClockMCは、日、時、分、秒、およびミリ秒の 5 つのテキストフィールドを含むムービークリップです。このクラス内の名前とパスを調整して、コンストラクトで機能させる必要がある場合があります。

この署名を使用してインスタンス化します。

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

これは実際には 1 つの答えで答えられる質問ではなく、アクション スクリプト 3.0 を完全に学習し、その知識を使用してこのプログラムを作成する必要があるようなものです。 これは、アクション スクリプト 3.0 とフラッシュ全般を学習するのに最適な本へのリンクです。アクション スクリプト 3.0 についてすべてを学びたくない場合は、その基本に関するチュートリアル、特にタイマークラスに関するチュートリアルを検索することを検討してください。引用した Web サイトにあるすべての機能を備えた優れたプログラムが必要な場合は、Essential Actin スクリプト 3 の本を読むだけでよいでしょう。あまり良くないでしょう。

于 2013-09-26T22:21:39.473 に答える