Google ‘da uzun uzun aramama rağmen bulamadım. Şimdilerde Engin Yöyen (.com) hocamında yardımlarıyla öğrendiklerim sayesinde yazdığım basit hesap makinasıdır.
(” Tırnak) İşaretlerini tazeleyiniz
// Ayrıntılara değinmeyeceğimizden hesap makinamızda birçok eksikliğin olması normaldir.
// Programın var olan mantığını değerlendirerek yazılımı geliştirebilirsiniz.
// Öncelikle sürekli değiştirebileceğimiz bir değer oluşturmalıyız
// Elbette değeri şuanda 0 olarak belirlemeliyiz
// Numara türünde deger isminde bir değişken oluşturuyoruz
// Daha sonra bu değerdeki değişmeleri ekranda göstereceğiz
var deger:Number = 0;
// İşlem türü ( + - / * ) için bir değişken oluşturalım. Eşittir butonuna basıldığında
// Hangi işlem türü seçildiyse o işlemi yaptıracağız..
// String türünde islemTuru adında bir değişken oluşturuyor ve islemSecilmedi değerini atıyoruz
var islemTuru:String = (”islemSecilmedi”);
// Bütün butonlar için birer dinleyici ekleyelim.
// bir_btn.dinleyiciEkle(Fare olayı olarak çalışsın.TIKLANINCA, bir_ekle fonksiyonunu çağırsın
bir_btn.addEventListener(MouseEvent.CLICK, bir_ekle);
// Diğer tüm butonlar için dinleyiciler ve çalıştırmaları gereken fonksiyonları ekliyoruz.
iki_btn.addEventListener(MouseEvent.CLICK, iki_ekle);
uc_btn.addEventListener(MouseEvent.CLICK, uc_ekle);
dort_btn.addEventListener(MouseEvent.CLICK, dort_ekle);
bes_btn.addEventListener(MouseEvent.CLICK, bes_ekle);
alti_btn.addEventListener(MouseEvent.CLICK, alti_ekle);
yedi_btn.addEventListener(MouseEvent.CLICK, yedi_ekle);
sekiz_btn.addEventListener(MouseEvent.CLICK, sekiz_ekle);
dokuz_btn.addEventListener(MouseEvent.CLICK, dokuz_ekle);
sifir_btn.addEventListener(MouseEvent.CLICK, sifir_ekle);
// Şimdi çağırılıp çalıştırılması gereken fonksiyonların görevlerini yazalım
// fonksiyon bir_ekle adlı fonksiyon(olay:FareOlayı idi):değer döndürme
function bir_ekle(event:MouseEvent):void {
// butona tıklandığı anda bu fonksiyon çağırılır. Biz ise bu fonksiyonda
// tam şu esnada ekrana, yani durum adı (crtl+f3, instance name) deger_txt olan dinamik yazıya
// kendi içindekiler ve artı 1 yaz diyelim
deger_txt.text = (deger_txt.text + “1″);
}
// Diğerleride kendi sayılarını yazdırmak koşuluyla aynen takip eder..
function iki_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “2″);
}
function uc_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “3″);
}
function dort_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “4″);
}
function bes_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “5″);
}
function alti_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “6″);
}
function yedi_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “7″);
}
function sekiz_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “8″);
}
function dokuz_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “9″);
}
function sifir_ekle(event:MouseEvent):void {
deger_txt.text = (deger_txt.text + “0″);
}
// Artık artı,eksi,bölü,çarpı butonlarını dinletebilir ve görevlerini tanımlayabiliriz
arti_btn.addEventListener(MouseEvent.CLICK, arti);
eksi_btn.addEventListener(MouseEvent.CLICK, eksi);
bolu_btn.addEventListener(MouseEvent.CLICK, bolu);
carpi_btn.addEventListener(MouseEvent.CLICK, carpi);
function arti(event:MouseEvent):void {
// islemTuru adındaki string değişkenin değerini islemArti olarak değiştireceğiz.
// Böylece makina, eşittir butonuna basıldığında hangi işlemi yapması gerektiğini algılayacak.
islemTuru = (”islemArti”);
// Değer adlı değişkenin yeni değerini belirleyeceğiz. Yeni değer
// ekrandaki yani deger_txt durum adlı (crtl+f3, instance name) olarak değişecek.
// fakat yazı kutusundan gelen bu değerin Number( olarak çağırılmasını sağlayacağız.
deger = Number(deger_txt.text);
// Değeri aldık. Sonrasında ekranı temizliyoruz.
// Ayrıca bu değerleri karıştırmamak için gerekli olacak.
// Hesap makinasının kısa mantığını daha rahat anlamak için işi komplex
// hale getirmeyeceğiz. Bu faslı hemen geçelim..
deger_txt.text = (””);
}
// Diğer işlem fonksiyonlarınıda aynı biçimde dolduralım..
function eksi(event:MouseEvent):void {
islemTuru = (”islemEksi”);
deger = (Number(deger_txt.text));
deger_txt.text = (””);
}
function bolu(event:MouseEvent):void {
islemTuru = (”islemBolu”);
deger = Number(deger_txt.text);
deger_txt.text = (””);
}
function carpi(event:MouseEvent):void {
islemTuru = (”islemCarpi”);
deger = Number(deger_txt.text);
deger_txt.text = (””);
}
// Eşittir butonunu burada tanımlıyoruz. Ayrıca eşittir
// fonksiyonunu hemen sonrasında tanımlayacağız
esittir_btn.addEventListener(MouseEvent.CLICK, esittir);
function esittir(event:MouseEvent):void {
// Eğer islemTuru islemArti ise yapılacak işler şunlar
if (islemTuru == “islemArti”) {
// deger = deger + deger_txt durum adlı yazı kutusunun
// numara halinde alınarak getirilen verisi
deger = deger + Number(deger_txt.text);
// Sıradaki işlem bu yazı kutusuna deger ‘in yazdırılması
deger_txt.text = (”” + deger);
// Yine işlemlerin karışmaması için deger ‘i sıfırlıyoruz
// Zaten ekrandaki son sayı yeni işlemlerde yeniden
// hesaba katılacağından bunun önemi yok
deger = 0;
// Eğer öyle değilde şöyleyse islemTuru = islemEksi
} else if ( islemTuru == “islemEksi”) {
// Diyor ve işlemleri çıkarma için uyarlıyoruz
deger = deger - Number(deger_txt.text);
deger_txt.text = (”” + deger);
deger = 0;
} else if ( islemTuru == “islemBolu”) {
deger = deger / Number(deger_txt.text);
deger_txt.text = (”” + deger);
deger = 0;
} else if ( islemTuru == “islemCarpi”) {
deger = deger * Number(deger_txt.text);
deger_txt.text = (”” + deger);
deger = 0;
}
}
// Hepsi bu kadar. Artık yapmamız gereken tek şey bir sıfırlayıcı.
// c_btn durum adlı butona dinleyici ekliyor ve sifirla adlı fonksiyonu çağır diyoruz..
c_btn.addEventListener(MouseEvent.CLICK, sifirla);
// sifirla adlı fonksiyonu tanımlıyoruz
function sifirla(event:MouseEvent):void {
// Bütün verileri ve ekranı sıfırlıyoruz..
deger = 0;
deger_txt.text = “”;
islemTuru = “Islem secilmedi”;
}
/*
www.mehmetoglu.org | FlashCS3 & As3 Blog..
Çalışan flash animasyonu:
http://www.mehmetoglu.org/as3_dersler/hesap_makinasi.swfÇalışan proje dosyası:
http://www.mehmetoglu.org/as3_dersler/hesap_makinasi.fla*/