アナログ時計

1.アナログ時計の針を作成します。短針、長針、秒針をそれぞれmovieClipとして作成し、インスタンス名を「hour_mc」「min_mc」「sec_mc」としておきます。
2.その際、中心点を時間の針として回転するように設定します。→Movieを見る
3.三つのMovieClipを_rootに重ねて配置します。そして三つまとめてMovieClipシンボルに変換しておきます。サンプルでは「clock_mc」としてあります。
4.「clock_mc」の1フレームにフレームアクションを記述します。


now=new Date(); /*現在の時刻を取得*/
theHour=now.getHours();
theMin=now.getMinutes();
theSec=now.getSeconds();
hour_mc._rotation=(theHour*30)+(theMin/2)-90; /*短針の角度を設定*/
min_mc._rotation=theMin*6-90; /*長針の角度を設定*/
sec_mc._rotation=theSec*6-90; /*秒針の角度を設定*/


5.このアクションを繰り返し実行させるために、「clock_mc」の1フレームの後にキーフレームを挿入し、フレームアクションを設定します。


this.gotoAndPlay(_currentFrame-1);


6.時計の文字盤等を描きます。
7.Ctrl+Enter(ムービープレビュー)を実行します。
8.→完成Movieを見る

☆解説☆
他のMovieでもし使うことがあれば、シンボルを使いまわせばいいだけなので、MovieClipにして作成しています。
スクリプトのhour_mcの所で「*30」とありますが、これは短針は一周するのに12時間かかります。ですので、360度÷12時間=「30」をかけています。
「the_Min/2」というのは、3時から4時までを例にとって説明します。3時の時の短針の角度は3*30=90度。4時の場合は4*30=120度です。長針が進むにつれ、短針も動いています。その動きを足しています。3時半の時は3(時)*30=90度。30(分)*6/2=90度。90+90=180度。そこから-90度で90度となります。
スクリプトのmin_mc、sec_mcの所の「*6」は一周するのに60分と60秒なので、360度÷60=「6」となっています。
最後に短針、長針、秒針のところに共通している「-90」ですが、これは「2」のところのMovieをごらん戴くとわかりますが、3時の位置にclock_mcを配置しています。ですので、時間を取得したとき(12時を基準として)90度傾いています。その分を引いて「-90」となっています。
clock_mcの配置の際、12時の位置にMovieClipを配置した場合は、この「-90」は必要ありません。