Search tutorials
[gimme more]
"what, is all that it takes to make a smooth-moving clock?" nope. the clock is KINDA READY, BUT NOT SO. does that strike a chord? hope so. with the next lines of code, the hours hand will move according to how many minutes have passed within the hour, too. so, when it's 14:51, it'll be closer to 3 than to 2. and it will not tick anymore. sorry, kids. the tick will become extinct. same thing goes for the minutes hand and the seconds hand. there's some add-ons to the code which will make it run more smoothly. what the heck, let's display the code all over again, for easier copying and pasting. here go:onClipEvent (enterFrame) {
// gets the time information and stores in a variable called "now"
now = new Date();
// assigns values individually
h = now.getHours();
m = now.getMinutes();
s = now.getSeconds();
d = now.getMilliseconds();
// angle adjust relative to the hours
setProperty(_root.clock.hrs, _rotation, (h+1)*30 + m/2);
// angle adjust relative to the minutes
setProperty(_root.clock.min, _rotation, m*6 + s/10);
// angle adjust relative to the seconds
setProperty(_root.clock.sec, _rotation, s*6+d/156);
}
as you can see, there's a new variable in the game. that's "d", for milliseconds. why milliseconds? don't ask me - charge Macromedia for a way to store decimals of seconds in a variable.
we need the decimals, but hopefully they can be extracted by multiplying milliseconds by 100. have you ever tried that? it's fun and exciting, in a warped, mathematical manner.
and what are decimals doing in a clock that displays only hours, minutes and seconds? simple. we'll use minutes to help control the hours hand position; seconds to help control the minutes hand position; aaand... you get the picture.
so, when you set the angle of the hours hand NOW, it'll be like this:
setProperty(_root.clock.hrs, _rotation, (h+1)*30 + m/2);this means adding half the passed minutes to the value of the angle set for the hours hand. and this is probably because m/2 is a maximum of 30 degrees, which is actually how much the hours hand would turn anyway. basically the same thing happens on the other hand, I mean, on the other hands. so no need to go any further. finishing, just add this code to your favourite clock movieclip and preview it! you should see it working....... as a clock. duh. for added fun, you can try UTC values. these are wordwide standards set by the Greenwich Mean Time, now called universal time or UTC. try using "h = now.getUTCHours();", for example. if you get any doubts, check out the included files. they are a sample of the tick clock and the smooth-moving clock. or you can e-mail me anytime :) enjoy!
| » Level Intermediate |
|
Added: 2003-12-28 Rating: 6 Votes: 21 |
| » Author |
| Brazillian advertiser-webdesigner hybrid. likz art, heavy, grooved electro-music + Brazillian rythms. plays capoeira. enjoys comedies, but when watches drama cries like a baby. that's it! |
| » Download |
| Download the files used in this tutorial. |
| Download (10 kb) |
| » Forums |
| More help? Search our boards for quick answers! |
-
You must have javascript enabled in order to post comments.


Comments
There are no comments yet. Be the first to comment!