][-DESKTOP - счастливые часов... наблюдают!

ilich (ilich@winfo.org)

Спецвыпуск Xakep, номер #025, стр. 025-090-5


}

minutes = time.getMinutes();

seconds = time.getSeconds();

ars._rotation = seconds*6;

arm._rotation = minutes*6;

arh._rotation = hours*30+minutes*0.5+180;

if ((minutes == 0) and (seconds == 0)and(_root._currentframe>=19)) {

ding.start(0, hours);

}

}

onClipEvent (load) {

ding = new Sound(this);

ding.attachSound("bum.wav");

}

Объект Flash'а Date(), экземпляр ("time") которого мы создаем, дает доступ read/write к инфе о времени (как о местном времени, так и о стандартном времени по Гринвичу) и дате. Дата нам пока не нужна, да и устанавливать мы ничего не собираемся, а вот спросить у своего компа, сколько там времени, нашей флешке надо. Для этого мы пользуемся такими методами объекта Date(), как getHours(), getMinutes() и getSeconds(), возвращающими, соответственно, текущие час, минуту и секунду. В соответствии с этими значениями мы поворачиваем стрелки твоих маленьких курантов на определенные углы.

В событии клипа "load" мы ставим в соответствие переменной "ding" наш звук "bum.wav". Теперь этим звуком можно управлять из ActionScript. Что мы и делаем в случае, когда часы показывают ровно час, ровно два часа и т.п. А делаем мы следующее: мы проигрываем долбеж в "bum.wav" столько раз, сколько натикало целых часов.

ОСНОВНАЯ СЦЕНА

Осталось только вынести что-нибудь на основную сцену. Давай сделаем так, чтобы Кремль не все время присутствовал на твоем Рабочем столе, а выдвигался при нажатии на характерного вида кнопочке ("B - StarButton"). Для этого на основной киноленте нам понадобятся четыре слоя. В самом верхнем первый и двадцатый кадры преврати в пустые ключевые и поставь в них stop(). В третьем слое в первом кадр выноси кнопочку "B - StarButton". Расположи ее в самом низу рабочей области ровно посередине. Скопируй этот кадр еще на два в том же слое и сделай с этими двумя новыми "Create Motion Tween". Звездочка в них должна стать полностью невидимой к девятнадцатому кадру. В первом кадре для незатронутой никакими преобразованиями кнопки пиши скрипт:

on (press) {

gotoAndPlay(2);

}

В четвертый слой выноси клип Кремля. Дай ему имя "kremlin". Делай два кадра с Motion Tween, в которых с первого по двадцатый с Кремлем происходит следующая анимация. Он из сжатого по вертикали состояния и из такого положения, что на рабочую область из всего Кремля торчит только лишь звезда его крыши (как раз под кнопкой "B - StarButton"), превращается в полноценное сооружение на весь экран.

Когда ты запустишь эту флешку, случится вот что. У тебя на экране будет только маленькая кремлевская звезда. После нажатия на нее снизу выползет Кремль с курантами. Кстати, о курантах. Помнишь, когда мы проверяем, круглое ли сейчас время, мы запихнули в тот if еще (_root._currentframe>=19). Так вот, это проверка для того, чтобы куранты били время лишь в случае, когда на основной сцене Кремль полностью виден (т.е. текущий кадр где-то в районе двадцатого). Так-то.

CLOSURE

Ты ни разу не замечал, если у тебя не самая быстрая машина, что Flash на Рабочем столе делает ее еще менее быстрой. Если все равно иметь постоянную флешку на экране очень хочется, советую сделать такой механизм. Нарисуем еще одну кнопочку (например, "B - Close") и расположим ее в специально заранее сделанном для нее втором слое главной сцены, растянув кадр на все двадцать. Пиши для нее:

Назад на стр. 025-090-4  Содержание  Вперед на стр. 025-090-6