Uygulamamızda tarih ve saat kısacası zaman ile ilgili bilgileri vermek istiyorsak Date() sınıfını kullanmamız gerekmektedir. Date sınıfı içerisinde bir çok veriyi barındırmaktadır. Bu tip veriler karmaşık veri tipi olarak isimlendirilirler. Date sınıfının hangi verileri barındırdığını görebilmek için aşağıdaki kodları Actions paneline yazalım.
[cc lang="ActionScript"]var zaman:Date = new Date(); trace(zaman) [/cc]Output paneline o anki zaman değerleri yazılacaktır. Bu değerler sırası ile Gün ismi, ay ismi, ayın kaçıncı günü olduğu, saat, GMT saatine göre yerel saat ve yıl bilgileridir. Görüldüğü gibi almak istediğimi bilgilere karmaşık bir şekilde ulaştık. Fakat bu bilgiler anlıktır. Dikkat ederseniz saatteki saniye değeri uygulama çalıştığı andaki saniye değerinde kalır ve değişmez, değişmesi için uygulamanın sürekli çalışması gerekmektedir. Bir de bu değerleri düzenleyerek kullanıcıya düzgün bir şekilde aktarmak gerekecek. Bu bilgileri istediğimiz formatta düzenleyebilmek için Date sınıfının metotlarını kullanabiliriz. Böylece oluşturduğumuz zaman nesnesinin içerisinden ihtiyacımız olan bilgileri alarak düzenleyebiliriz. Sınıfın içerisinden istediğimiz bilgileri almak için aşağıdaki metotları kullanabiliriz.
zaman.getDay();//Haftanın kaçıncı günü olduğunu verir. //Haftanın ilk günü Pazar olarak verilmiştir. Yani haftanın 0. günü Pazar olarak kabul edilir. zaman.getMonth();//Yılın kaçıncı ayında olduğumuzu verir. zaman.getDate();//Ayin kaçıncı gününde olduğumuzu verir. //Burada da 0 değer Ocak ayına eşittir. zaman.getFullYear();//içinde bulnduğumuz yılı verir. zaman.getHours();//saat bilgisini verir. zaman.getMinutes();//dakika bilgisini verir. zaman.getSeconds();//saniye bilgisini verir. zaman.getMilliseconds();//milisaniye bilgisini verir.Date sınıfının içerisinden istediğimiz bilgileri aldık. Sıra geldi bu bilgileri sürekli güncellenmesine; güncellemeyi sağlamak için Bir olay tetikleyiciye ihtiyacımız olacak. Olay tetikleyici olarak ENTER_FRAME ya da Timer kullanabiliriz. Ben bu uygulamada Timer kullandım.
Artık uygulamamızı oluşturabiliriz. İlk olarak sahne üzerine iki adet dinamik metin kutusu oluşturalım ve Instance Name kısımlarına tarih_txt ve saat_txt yazalım.
Uygulamamızda kullanacağımız nesneler bu kadar. Şimdi de Actions panelini açarak aşağıdaki kodları yazalım.
//bir Timer nesnesi oluşturuyoruz süre olarakta 1 milisaniye değerini giriyoruz var sayac:Timer = new Timer(1); //oluşturduğumuz timer nesnesine bir olay dinleyici atıyoruz sayac.addEventListener(TimerEvent.TIMER, zamaniGoster); function zamaniGoster(e:TimerEvent) { //zaman isimli yeni bir nesne oluşturuyoruz var zaman:Date= new Date(); //içerisinde gün isimlerinin olduğu bir dizi oluşturuyoruz var gunler:Array=new Array("Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"); //ay isimlerinin içerisinde olduğu bir dizi oluşturuyoruz var aylar:Array = new Array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"); //kullanacağımız değişkenlerimizi tanımlamaya başlıyoruz. //tanımladığımız değişkenler haftanın kaçıncı gününde, yılın kaçıncı ayında, //ayın kaçıncı gününde olduğumuzgibi bilgileri içerecekler //bu değişkenleri kullanarak oluşturduğumuz dizilerin elemanlarını sahnedeki metin alanına yazdıracağız. var haftaninGunu = zaman.getDay(); var hangiAy = zaman.getMonth(); var ayinGunu = zaman.getDate(); var yil = zaman.getFullYear(); //zaman nesnesini kullanarak saat ile ilgili bilgileri alıp //tanımladığımız değişkenlere değer olarak atıyoruz //if koşullu ifadesi ile de gelen değerler 10'dan küçükse başına 0 ilave ediyoruz ki //değerler tek haneli olarak yazdırılmasın(Örn.= 3 yerine 03 vb.) var saat = zaman.getHours(); if (saat<10) { saat="0"+saat; } var dakika = zaman.getMinutes(); if (dakika<10) { dakika="0"+dakika; } var saniye = zaman.getSeconds(); if (saniye<10) { saniye="0"+saniye; } //saat ile ilgili değerleri sahne üzerindeki saat_txt isimli metin kutusuna yazdırıyoruz //değerler arasına : ekleyerek birbirinden ayrılmasını sağlıyoruz. saat_txt.text=saat + " : " +dakika + " : "+ saniye; //tarih ile ilgili değerleri sahne üzerindeki tarih_txt isimli metin kutusuna yazdırıyoruz //değerler arasına boşluk ekleyerek değerlerin birbirinden ayrılmasını sağlıyoruz. tarih_txt.text = ayinGunu + " " + aylar[hangiAy] +" "+ yil+" " + gunler[haftaninGunu] ; } //sayacı çalıştırıyoruz sayac.start();
Hiç yorum yok:
Yorum Gönder