Analog Saat Hazırlama


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.

DOSYAYI İNDİR                                               DOSYAYI İNDİR

 

Saatimizi oluşturalım:

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();

saniye_rotasyon = saniye * 6;
dakika_rotasyon = dakika *6;
saat_rotasyon = (saat * 60 + dakika)*0.5;

setProperty("saniye_kolu",_rotation,saniye_rotasyon);
setProperty("dakika_kolu",_rotation,dakika_rotasyon);
setProperty("saat_kolu",_rotation,saat_rotasyon);
}

Ş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.