Автор: © 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
|