FRAME 2
1. Създаваме на нов layer едно Input Text Field, с Instance Name = count_down
2. Удължаваме си другите два слоя (Actions И слоя в който са ни по-горните text fields.). Гледайте задължително да имате двете текстови полета от които се взимат данните за минути и секунди на frame 2, защото иначе няма как таймерът ви да работи. А ако не искате да ги виждате...затова са направени в MC, за да може да се манипулират с AS, просто вижте кода :).
3. На слоя Actions в Frame 2 задаваме AS код.
Code:
pow_mc._visible = false;
//С този код нашите текстови полета ще са там, но няма да ги виждаме. Ако искате да се виждат или махнете кода, или го променете на true.
delay = setInterval(proceed, countdown);
function proceed() {
clearInterval(delay);
gotoAndPlay(3);
}
//С този код се съдава опция delay на анимацията ни, с която флаш няма да продължи изпълнението на филмчето ни, докато не достигне времето от variable countdown. След, което е разположена функцията, която да се изпълнява след изтичането на времето от countdown.
start_time = getTimer();
countdown = 60000*Number(_root.pow_mc.minutesTF.text)+1000*Number(_root.pow_mc.secondsTF.text);
this.onEnterFrame = countdownF;
//Тук взимаме функцията за таймер от флаш, определяме от ново нашата variable за времето ни, и също създаваме името на функцията за таймер.
function countdownF() {
elapsed_time = getTimer()-start_time;
_root.count.text = time_to_string(elapsed_time);
_root.count_down.text = time_to_string(_root.countdown-elapsed_time);
//С този код тук, флаш свързва конвертираното време и го показва в текстовото ни поле.
if(Number(_root.count_down.text)<=0){
delete coundownBtn.onEnterFrame;
}
};
function time_to_string(time_to_convert) {
elapsed_hours = Math.floor(time_to_convert/3600000);
remaining = time_to_convert-(elapsed_hours*3600000);
elapsed_minutes = Math.floor(remaining/60000);
remaining = remaining-(elapsed_minutes*60000);
elapsed_seconds = Math.floor(remaining/1000);
remaining = remaining-(elapsed_seconds*1000);
elapsed_msecs = Math.floor(remaining/10);
if (elapsed_hours<10) {
hours = "0"+elapsed_hours.toString();
} else {
hours = elapsed_hours.toString();
}
if (elapsed_minutes<10) {
minutes = "0"+elapsed_minutes.toString();
} else {
minutes = elapsed_minutes.toString();
}
if (elapsed_seconds<10) {
seconds = "0"+elapsed_seconds.toString();
} else {
seconds = elapsed_seconds.toString();
}
if (elapsed_msecs<10) {
msecs = "0"+elapsed_msecs.toString();
} else {
msecs = elapsed_msecs.toString();
}
//Този целия код ни е всъщност метода за конвертиране на реалното време в милисекунди. С които всъщност флаш прави изчисленията.
return minutes+":"+seconds+"."+msecs;
}
//Тук описваме какво да се изписва в текстовото ни поле, в случая ще пише МИНУТИ:СЕКУНДИ.МИЛИСЕКУНДИ, ако го промените на return hours+":"+minutes+":"+seconds+"."+msecs, в текстовото поле ще се изписва ЧАСОВЕ:МИНУТИ:СЕКУНДИ.МИЛИСЕКУНДИ
stop();
//И съответно стопкод :)
FRAME 3
Там слагате някаква анимация по ваш избор или си го нагаждате както искате :).
Работни Файлове + демо можете да свалите от тук.
Урок by d0brin