Как да си направим флаш таймер
Публикувана от smilev на January 17 2011 14:05:57

Разширена новина
1. Отваряме нов документ на Action Script 2.0

[img]http://uroci.net/images/stories/uroci_17/u1.JPG[/img]

2. Сцената ни ще е с размер 250х200 рх.

3. Създавате текстово поле с помощта на Text Tool (T). След като създадете полето то трябва да бъде с Var - timer_txt.Също така текстовото поле трябва да бъде Dynamic Text.

[img]http://uroci.net/images/stories/uroci_17/u2.JPG[/img]

4. Ако не ви се правят бутони може да си вземете готови от Window->Common Libraries->Buttons.

[img]http://uroci.net/images/stories/uroci_17/u3.JPG[/img]

- От там си избирате playback buttons и по ваш избор взимате един бутон Play един бутон Stop и един бутон Pause

[img]http://uroci.net/images/stories/uroci_17/u4.JPG[/img]

5. След което на бутона Play давате Instance name = play_btn
- На бутона Stop Давате Instance name = stop_btn
- И на бутона Pause давате Instance name = pause_btn

ЗАБЕЛЕЖКА: Ако не знаете къде се намира мястото за задаване на Instance name, можете да го видите тук:

[img]http://uroci.net/images/stories/uroci_17/u6.JPG[/img]

6. Дотук работихме на Layer 1. Сега направете нов слой, за да сложим кода.

[img]http://uroci.net/images/stories/uroci_17/u7.JPG[/img]

- Така трбва да изглежда слоя след като сте добавили кода а той е следният:

[b] //initial variables
var timing:Boolean = false;
var paused:Boolean = false;
var remaining:Number;
var elapsedTime:Number;
var elapsedHours: Number;
var elapsedM:Number;
var elapsedS:Number;
var elapsedH:Number;
var startTime:Number;
var remaining:Number;
var hours:String;
var minutes:String;
var seconds:String;
var hundredths:String;
_root.play_btn.onPress = function() {
if(!_root.timing) {
if (_root.paused) {
_root.startTime = getTimer() - _root.elapsedTime;
} else {
_root.startTime = getTimer();
}
//start timer
_root.paused = false;
_root.timing = true;
}
}
_root.stop_btn.onPress = function() {
//stop the timer
_root.timing = false;
//reset the paused variable
_root.paused = false;
//reset the display textbox
_root.timer_txt = "00:00:00:00";
}
_root.pause_btn.onPress = function() {
//only pause if the timer is actually going
if(_root.timing) {
_root.timing = false;
_root.paused = true;
}
}
_root.onEnterFrame = function() {
if (timing) {
//calculate values
elapsedTime = getTimer()-startTime;
//hours
elapsedHours = Math.floor(elapsedTime/3600000);
remaining = elapsedTime-(elapsedHours*3600000);
//minutes
elapsedM = Math.floor(remaining/60000);
remaining = remaining-(elapsedM*60000);
//seconds
elapsedS = Math.floor(remaining/1000);
remaining = remaining-(elapsedS*1000);
//hundredths
elapsedH = Math.floor(remaining/10);
//output to text box
//add a 0 on the front of the numbers if the number is less than 10
if (elapsedHours<10) {
hours = "0"+elapsedHours.toString();
} else {
hours = elapsedHours.toString();
}
if (elapsedM<10) {
minutes = "0"+elapsedM.toString();
} else {
minutes = elapsedM.toString();
}
if (elapsedS<10) {
seconds = "0"+elapsedS.toString();
} else {
seconds = elapsedS.toString();
}
if (elapsedH<10) {
hundredths = "0"+elapsedH.toString();
} else {
hundredths = elapsedH.toString();
}
_root.timer_txt = hours+":"+minutes+":"+seconds+":"+hundredths;
}
};
[/b]