Aşağıda 2 saat örneği görüyorsunuz. Soldaki saat
daha etkileyici gözükmekle birlikte kullanılan kodlar tamamen
aynıdır. Önemli olan kodları planlamaktır. Görsellik kısmı tamamen
kişinin yaratıcılığına bağlıdır. Oluşum klasiktir. Akrep, yelkovan
ve saniye kolları hazırlanır, herbiri ayrı ayrı film klibi yapılır.
Ana sahnede ayrı katmanlarda üstüste saat 12 hizasında yerleştirilir.
Son olarak görsel zenginlik katılır ve klasik kodlar uygulanır.
1- Sahneye bir çember çizelim. Üzerine saat kadranlarını
ve numaralarını yerleştirelim. Bu alanda saatinize istediğiniz
görsel özellikleri verebilirsiniz.
2- Sahnedeki tüm oluşumları
seçelim. F8 tuşuna basarak onu bir film klibi şekline getirelim.
Ana_saat film klibimiz sahnede hazır bekliyor. Şimdi akrep, yelkovan
ve saniye kolunu içeren 3 tane klip hazırlayacağız.
3- CTRL+F8`e basarak saat kolu
için bir film klibi oluşturun. Sahneye akrebi temsil edecek bir
çizgi çizin. Aynı işlemlerle yelkovan ve saniye kolunu gösteren
kliplerimizi oluşturalım. Burada önemli bir nokta var. Her 3 klibin
de merkez noktası kolların alt ucuna yakın bir yerde olmalıdır.
Çünkü ilerde rotasyon komutu verdiğimizde bu nokta merkez kabul
edilip dönme işlemi olacaktır.
Merkez noktasını değiştirmek için araç kutusundaki
"free transform tools" aracını seçip
klip üzerine tıklayın. Ortada gördüğünüz küçük daire merkez noktasıdır.
Onu fare ile tutarak alt kenara çekin.
4- Şimdi ana sahneye dönelim.
Sahnedeki ana_saat klibimizi çift tıklayarak açalım.Yeni bir katman
ekleyelim. Buraya kollardan birini, örneğin saniye kolu klibini
koyalım. Yeni bir katman ve dakika kolu, tekrar bir katman ve
saat kolunu yerleştirelim. Bunlara örnek adı olarak saat_kolu,
dakika_kolu, saniye_kolu örnek adlarını verelim.En üst kısma tekrar
bir katman ekleyip kolların birleşim yerindeki dönme hareketinin
gözlenmemesi için ortaya minik bir daire çizebilirsiniz. Kolları
sahneye yerleştirirken uçlarının saat 12 hizasında olmasına ve
3 kolunda tam üst üste gelmesine dikkat edelim.
5- Ana sahneye geri dönelim.
Sahnede saatimiz artık gözüküyor. Bu klibi tıklayarak seçelim.
Actionscript panelini açalım. Saat hazırlamada yazacağımız tek
komut alanı burasıdır. Başka bir yere komut yazmaya gerek yoktur.
Yazacağımız komut saat klibi oluşturmada en kolay
yöntemdir.
onClipEvent (enterFrame)
{
zaman = new Date();
saat = zaman.getHours();
dakika = zaman.getMinutes();
saniye = zaman.getSeconds();
Şu anda klibimiz hazırdır. Şimdi kodları irdeleyelim:
EnterFrame işleyicisi daha önceki örneklerde
de anlatıldığı gibi komutların devamlı okunmasını ve böylece saatin
kusursuz çalışmasını sağlar. Zaman adında yeni bir nesne oluşturuyoruz.
Bu nesneye otomatik olarak sistem bilgisinden atanan saat, dakika
ve saniye değerlerini sırasıyla saat, dakika ve saniye değişkenine
atıyoruz. Buraya kadar olanlar bildik işler. Şimdi bu değerleri
işleyerek kollara dönme hareketi yaptıracağız.
Biraz matematikten bahsedelim. Bir daire 360
derecedir. Bir saat 60 dakikadır. O halde 360/60=6 .Yani saniye
ve dakika kolunun bir değer artması için 6 derece dönmesi gerekir.
Saat için durum faklıdır. Bu sonra anlatılacak.
saniye_rotasyon = saniye * 6; saniye kolunun
dönme derecesini bulmak için sistem bilgisinden okunan saniye
rakamını 6 il e çarparız. Örneğin 15 saniye için dönme oranı 15*6=
90 derecedir.
dakika_rotasyon = dakika *6; burada da dakika
kolunun dönme değeri hesaplanır.
saat_rotasyon = (saat * 60 + dakika)*0.5; Saat
kolunun dönme işlemi için en pratik yol bu matematiksel işlemdir.
Önce sistemden okunan saat değeri 60 ile çarpılarak dakika değerinde
alınır, bu değere yine sistemden okunan dakika değeri eklenir.
Bu değer 2`ye bölünür veya 0.5 ile çarpılır.
Diyelim ki saat tam bir. Bu durumda saatin kolu
bir hizasında olmalıdır. Burada 5 birim vardır. Her birim 6 derece
olduğuna göre 5*6= 30 derece rotasyonda saat kolu durmalıdır.
Yukardaki formülümüzü bir test edelim.
(1x60+0) x 0.5=30 derece.
Şu anda rotasyon değerlerini oluşturduk. Şimdi
onları setProperty komutu ile çevirme işlemi başlıyor.
setProperty("saniye_kolu",_rotation,saniye_rotasyon);
Burada saniye kolu klibinin yukarda anlatılan yöntemle kaç derece
çevrileceğini yazıyoruz.
Aynı işlemi saat ve dakika için de oluşturuyoruz.
EnterFrame işlemide bu bilgileri devamlı güncelleyerek saatimizi
kusursuz çalıştırıyor.
Analog saat hazırlamada başka işlem ve komutlarda
uygulanmasına rağmen en basit yöntem gördüğünüz yöntemdir.