- Flash Action Script: Analog Clock -

아날로그 시계(flash MX)

컴퓨터의 시간을 이용한 아날로그 시계로 30분마다 물떨어지는 소리 알람이 울린다.

프레임에 액션 작성

_root.blank.onEnterFrame=function() {
time = new Date();
hours = time.getHours();
minutes = time.getMinutes();
seconds = time.getSeconds();

if (hours>12) {
hours = hours-12;
}
if (hours<1) {
hours = 12;
}

hours = hours*30+int(minutes/2);
minutes = minutes*6+int(seconds/10);
seconds = seconds*6;
}

_root.mhour.onEnterFrame=function() {
setProperty(this, _rotation, _root.hours);
_root.tdate = new Date();
}

_root.mminute.onEnterFrame=function() {
setProperty(this, _rotation, _root.minutes);
}

_root.msecond.onEnterFrame=function() {
setProperty(this, _rotation, _root.seconds);
}

_root.alarm.onEnterFrame=function(){
_root.tminute = int(minutes/6);
alarmTime = int(minutes/6);
second = int(seconds/6);
if(alarmTime == 30 || alarmTime == 0){
if (second == 0){
playSound("30minutePassed");
}
}
}

function playSound(pSnd){
var kSnd = new sound();
kSnd.attachSound ("snd_"+pSnd);
kSnd.start (0,0);
}

-------------------------------------------
각 시계바늘의 축을 무비클립 안에 들어가서 중심으로 맞춰줘야 제대로 축을 따라 돌게된다.

alarm을 onEnterFrame으로 한 바람에 if문이 까다로워졌다.
Frame Rate도 12에서 1로 바꾸어야 했고.