Четверг, 28.03.2024, 17:29
Приветствую Вас Гость | RSS

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Секундомер

Создание секундомера

На этом уроке мы научимся создавать секундомер с кнопками ПУСК и СТОП.

Но сначала создадим простой таймер отсчёта времени, для лучшего понимания

поставленной задачи.  Итак, создаём новый документ AS 3.0  Добавляем на сцену

три кнопки:  Пуск, Стоп, Сброс и присваиваем им соответственно instanc name:

start_btn, stop_btn and reset_btn.  На новом слое создаем динамическое текстовое

поле, назначая  instanc name:  myText_txt  Задайте нужные размеры поля и не

забудьте внедрить шрифт.  Создаем ещё один слой для скрипта и вставляем код:

 

myText_txt.text = "0";
var myTimer:Timer=new Timer(1000,0);
myTimer.addEventListener(TimerEvent.TIMER, stopWatch);

//2.
function stopWatch(event:TimerEvent):void {
myText_txt.text=String(myTimer.currentCount);
}

//3.
start_btn.addEventListener(MouseEvent.CLICK, startClock);
stop_btn.addEventListener(MouseEvent.CLICK, stopClock);
reset_btn.addEventListener(MouseEvent.CLICK, resetClock);

//4.
function startClock(event:MouseEvent):void {
myTimer.start();
}

//5.
function stopClock(event:MouseEvent):void {
myTimer.stop();
}

//6.
function resetClock(event:MouseEvent):void {
myTimer.reset();
myText_txt.text="0";
}

 

Вот что должно получиться.

 

 

 

Теперь изменим задачу и будем делать вот такой секундомер

 

Создать новый документ на AS 3.0

Нужно создать 5 слоёв: на первый слой поместить фоновый циферблат секундомера

На втором и третьем слоях нарисовать секундные и минутные стрелки.  Поскольку в

этом примере часовая стрелка не нужна, я её нарисовал за пределами сцены, но instanc

name присвоил (myhr - для часовой стрелки,   mysec - для секундной,  mymin - для минутной)

На четвёртом слое создаём две кнопки: ПУСК и СТОП, соответственно давая instanc name

start_btn  и  stop_btn.   На пятом слое пишем скрипт.

 

 

На пятом слое открываем панель скриптов и добавляем код:

 

import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;


start_btn.addEventListener(MouseEvent.CLICK, startTimer);

function startTimer(event:MouseEvent)   {
    
    var mysec:Tween = new Tween (Sec,"rotation", None.easeNone, 0, 360, 60, true);
    var mymin:Tween = new Tween (Min,"rotation", None.easeNone, 0, 360, 60*60, true);
    var myhr:Tween = new Tween (Hr,"rotation", None.easeNone, 0, 360, 60*60*12, true);
    
    mysec.addEventListener(TweenEvent.MOTION_FINISH, onfin);
    mymin.addEventListener(TweenEvent.MOTION_FINISH, onfin);
    myhr.addEventListener(TweenEvent.MOTION_FINISH, onfin);
    
    
    stop_btn.addEventListener(MouseEvent.CLICK, stopTimer);
    function stopTimer (event:MouseEvent)  {
        
        mysec.stop();
        mymin.stop();
        myhr.stop();
    }
    
}

function onfin (event:TweenEvent){
    event.target.start();
}

 

 

После этого тестируем ролик Ctrl+Enter

 

 

Поиск


Календарь
Друзья сайта
Друзья сайта



Все права принадлежат Akrus.Просьба при копировании давать ссылку на мой сайт. © 2024