Помогни ни да направим Uroci.net по - богат! Добави урок

Flash Custom CountDown Timer

d0brin   трудност:    видян: 12939



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


Страници: «1 2

Коментари (1)

simeon10 на 11.10 2010 в 23:44ч.
А има ли начин да се направи, като изтече времето да се изключва компютъра или да се отваря някакъв файл. Извинявам се но днес си изтеглих Flash CS4 и ако може да обясниш по подробно, ако е възможно това за което помолих по горе. :)

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: IT Новини