On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Делаем таймер!

Автор: © vol

Вэтом уроке будет рассказано о том, как сделать таймер,похожий на пример!
I.Сначала создадим новый фильм и три кадра в нём(для регулирования таймера в 1ом кадре поставьте Action:
stop();, а в 3ем Action: gotoAndPlay(2); для постоянного обновления данных).
II.Затем создадим две кнопки,которые включали бы в себя знаки + и -.
III.Создадим два динамических текстовых полей с именем second и с именем time.
IV.Поместим эти кнопки на главную сцену и дадим им такие Actions:
1)Для той, что с +:
on(press)
{if(sec<9999)
{sec++;
second=sec;}}
2)для той,что с -:
on(press)
{if(sec>1)
{sec--;
seconds=sec;}}
Пояснения:
on(press) --- показывает при каком событии нужно выполнять последующие действия ( в
данном случе при нажатии на кнопку)
{if(sec<9999) --- накладываем ограничения на значение переменной ( т.е. пока
переменная "sec" < 9999 то мы переходим к дальнейшим действиям)
{sec++; --- увеличивает переменную "sec" на 1 (sec=sec+1;)( то же самое происходит при sec--;
только она уменьшается на 1)
seconds=sec;}} --- эта строка отображает значение переменной в динамическом текстовом поле
с именем: second.
V.Создадим кнопку старт, поместим ее на главную сцену и дадим ей Script:
on(press)
{startTime=getTimer();
time1=sec*1000;
gotoAndPlay(2);}
Пояснения:
on(press) --- смотрите выше ^
startTime=getTimer(); --- фиксируем время нажатия на кнопку и заносим его, как значение переменной "startTime"
time1=sec*1000; --- переводим секунды,(значение переменной, которое мы уменьшали/прибавляли) в милисекунды
(таймер работает только с милисекундами)
gotoAndPlay(2);} --- переходим во второй кадр
VI.Переходим на работу во втором кадре.!!!Убираем все Actions со всех объектов!!!Наносим такой Action на второй кадр:
if(getTimer()-startTime < time1)
{time=Math.floor((getTimer()-startTime)/1000);}
if(getTimer()-startTime >= time1)
{time="Time Out!";
gotoAndStop(1);}
Пояснения:
if(getTimer()-startTime < time1) --- Смотрим, не прошло ли больше времени, чем задали?
{time=Math.floor((getTimer()-startTime)/1000);} --- Если не прошло, то заполняем текстовое поле time2 целой частью прошедшего
времени, переведённым из милисекунд в секунды.("getTimer()-startTime" --- вычисляем прошедшее время).
if(getTimer()-startTime >= time1) --- Смотрим ещё раз.
{time="Time Out!";
gotoAndStop(1);} --- Если прошло, то в текстовое поле time выводится надпись: Time Out!. Затем мы незаметно попадаем в первый
кадр для повторной настройки таймера.

Вот и всё, если вы выполняли всё, как здесь написано, то у вас получится!
P.S. Попробуйте прилумать таймер для обратного отсчета(как в примере) сами!
Если что-то не получается пишите мне на e-mail, я вышлю вам исходник для сравнения с вашим творением!



Литература по FLASH