| 3C İçeriklerini Takibe Al RSS

bekliyorumseni.com,Bedava Mp3 indir,bekliyorumseni,Film Seyret,izle, Dizi izLe,2009 FuLL ALbumLer,Oyun iNDir, Mp3 Dinle,Bedava Film İzle , Kurtlar Vadisi Pusu
Mp3FoRuMu.Net,Bedava Mp3 indir,Mp3forumu,Film Seyret,izle, Dizi izLe,2009 FuLL ALbumLer,Oyun iNDir, Mp3 Dinle,Bedava Film İzle , Kurtlar Vadisi Pusu

ActionScript 3.0: Analog Saat

Kasım 20th, 2009 Bulunduğu kategori AS3 Uygulama Geliştirmeleri

Bu dersimizde Timer sınıfını kullanarak analog bir saat yapacağız. Bunun için gerekli olanlar;

  • Üzerinde akrep, yelkovan, ve saniye kollarının olmadığı boş bir saat resmi
  • Saati gösteren instance name’yi “saatKolu” olan bir movieclip
  • Dakikayı gösteren instance name’yi “dakikaKolu” olan bir movieclip
  • Saniyeyi gösteren instance name’yi “saniyeKolu” olan bir movieclip

Öncelikle Timer sınıfından “zamanlayici” adlı bir nesne oluşturuyoruz. Sonra bu zamanlayiciyi tetiklemek için bunu “TimerEvent.TIMER” olayına kaydediyoruz. Zamanlayici nesnesinin çalışması için ayrıca start() metodunu kullanmamız gerekiyor yoksa zamanlayici harekete geçmez.


var zamanlayici:Timer = new Timer(200);
zamanlayici.addEventListener(TimerEvent.TIMER,saatiCalistir);
zamanlayici.start();
saatiCalistir();

function saatiCalistir(event:TimerEvent = null):void {
    var zaman = new Date();
    var saniye:uint = zaman.getSeconds();
    var dakika:uint = zaman.getMinutes();
    var saat:uint = zaman.getHours();
    saatKolu.rotation = Math.round((360 * (saat / 12)) + (30 * (dakika / 60)));
    dakikaKolu.rotation = Math.round(360 * (dakika / 60));
    saniyeKolu.rotation = Math.round(360 * (saniye / 60));
}

“zaman” adlı bir zaman nesnesi oluşturarak, getSeconds(),getMinutes() ve getHours() metotları ile zaman nesnesinin saniye, dakika ve saat bilgilerini elde ediyoruz. Bu bilgileri elde ettikten sonra analog saatimizin saniye,dakika ve saat kollarını zamana uygun olarak hareket etmesini sağlamamız gerekiyor. Bunun için saatKolu, dakikaKolu ve saniyeKolu adlı moviecliplerimizin “rotation” özelliklerini “saat”,”dakika” ve “saniye” değişkenlerine göre ayarlamalıyız.

Öncelikle bu üç movieclipte 360 derece tur atmak zorundadır. Burada dikkat etmemiz gereken konu; her birinin tur atma hızı farklı olmalıdır.

Diyelim ki; o an için zaman nesnesi saat=5 dakika=20; saniye=5 değerlerini aldı.

saatKolu.rotation = Math.round((360 * (saat / 12)) + (30 * (dakika / 60)));

formülümüze göre (360(5/12)+(30(20)/60))=160

saatKolu.rotation=160 derece dönecektir.

dakikaKolu.rotation = Math.round(360 * (dakika / 60));

formülümüze göre (360*(20/60))=120

dakikaKolu.rotation=120 derece dönecektir.

saniyeKolu.rotation = Math.round(360 * (saniye / 60));

formülümüze göre (360*(5/60))=30

dakikaKolu.rotation=30 derece dönecektir. MMİstanbul

Bu örnekte dikkat edilmesi gereken en önemli bölüm şurasıdır:


saatiCalistir();

function saatiCalistir(event:TimerEvent = null):void

İlk olarak TimerEvent’i tetiklendiğinde saatiCalistir fonksiyonunun null değerini alması sağlanarak başlangıçta zaman bilgisinin alınması engelleniyor. Sonra ise tekrar saatiCalistir() fonksiyonu çağrılarak o anda zaman bilgisi alınarak analog saat çalışmaya başlıyor. Bu işlem, analog saat ilk anda çalışırken saniye kolunun meydana getirdiği saniye farkından oluşan olumsuz hareketi engellemektedir.

Uygulama Dosyası:analogsaat.rar

İşte size duvarınıza asabileceğiniz bir saat. Güle güle kullanın:)

muttaliptulgar

Bir değerlendirme to “ActionScript 3.0: Analog Saat”

  1. Serkan Demirci Says:

    Analog saat uygulamasını bir kaç ay önce yapmıştım ama bu uygulamaya gün ve ay bilgisini de girmek istiyorum ama bunu text alanına değil hazırlayacağım resimleri belirleyeceğim alana atayıp değer gününe/ayına göre ekrana gelmesini istiyorum ama nasıl yapacağım konusunda kafam biraz karıştı yardımcı olursanız sevinirim. Şimdiden çok teşekkürler.


Değerlendirmeniz nedir?