?>
Flash çalışmamızda Flash 8 ile çok fonksiyonlu hesap makinası yapalım. Hesap makinasını yapabilmek için ActionScript bilmek gerekmekte fakat az çok da bilseniz yeterlidir. Çalışmamıza başlayalım yeni bir çalışma sayfası açalım istediğimiz rengi kullanarak resimdekine benzer arka plan oluşturalım.

1-Çalışmamıza buton hazırlayarak başlayalım örnek resimde görüldüğü gibi Up ve over kısımlardaki görünümü ekledim. İlk 16 butonu hazırlıyoruz. Name olarak sıralamayı takip edebiliriz örnek olarak btn_0 şeklinde olabilir.

2-Hazırladığımız 16 butonu scene1 sahnemize ayarlayalım.

3-1 ile sıfır arası butonları tek, tek seçili yapıp actions paneli açalım ekli kodu ekleyelim.
on (release) {
if (off_flag == false) {
dispflag(dispno);
if (dispno == true) {
AddDigit("1");
}
}
}
Her butona bu kodu ekleyelim fakat (“sayı değişelim ”)sayıyı değişerek ekleyeceğiz. Örnek vereyim eksi butonumuza eklediğimiz kod.
on (release) {
if(off_flag==false) {
display_flag = 0;
DoOperator("-");
}
}
4-Fonksiyon butonlarını yapalım benim örneğim resimde görüldüğü şekilde oldu. Dört adet yapalım

5-Dört adet hazırladığımız butonları yerleştirelim.

6-M+, MR, MC, C butonları tek ,tek seçili yaparak actions panele sırası ile ekli kodları ekleyelim.
M+ eklenecek kod
on (release) {
if (off_flag == false) {
memory = memory+Number(display);
clear = true;
}
}
MR eklenecek kod
on (release) {
if(off_flag==false) {
display = memory;
clear = true;
MC eklenecek kod
on (release) {
if(off_flag==false) {
memory = 0;
clear = true;
C eklenecek kod
on (release) {
if(off_flag==false) {
display = "0";
decimal = false;
}
}
7-İki çeşit buton hazırladık 2 adet buton daha yapalım biri OFF diğeri AC buton olacak örnek resimde.

OFF ve AC butonları seçili yapalım ekli kodları ekleyelim.
OFF eklenecek kod
on (release) {
offCheck1();
operand1 = false;
display = "";
operator = "";
clear = false;
decimal = false;
Status= "";
setflag = false;
setProperty (check_inv, _visible, 0);
flag_inv = 0;
AC eklenecek kod
on (release) {
offCheck();
operand1 = false;
display = "0";
operator = "";
clear = false;
decimal = false;
Status= "";
setflag = false;
display_flag = 0;
setProperty (check_inv, _visible, 0);
flag_inv = 0;
8-Genel olarak butonları nasıl oluşturduğumuzu ve eklenecek kodları verdim şimdi fonksiyon butonları hazırlayalım butonların görünümü ve sahnedeki görünümü örnek resimde.

9-Eklenecek kodları tek,tek eklemek yerine ekli dosyayı indirip inceleyebilirsiniz.
10-Butonları tamamen hazırladığımızdaki görünüm resmimiz.

11-Üst kısımdaki siyah olan yere Text tool aracını seçelim Dynamic Text oluşturalım.

12-Scene1 sahnemizde 1.framede actions paneli açalım ekli kodu ekleyelim.
//photoders.com
memory = 0;
sp = "0";
display = 0;
flag_inv = 0;
display_flag = 0;
point = false;
off_flag = false;
if (off_flag == true) {
offcheck1();
}
stop ();
function offCheck1 () {
off_flag = true;
display = "";
}
function offCheck () {
off_flag = false;
}
function dispflag () {
if (display_flag<15) {
display_flag = display_flag+1;
return dispno=true;
} else {
return dispno=false;
}
}
function AddDigit (digit) {
if (clear) {
clear = false;
decimal = false;
display = "0";
}
if (dispno=true) {
if (display == "0" and digit != ".") {
display = digit;
} else {
display = display+digit;
}
} else {
}
}
function DoInverse (flag) {
if (flag == 0) {
return setflag=true;
} else {
return setflag=false;
}
}
function DoOperator (newOper) {
if (operator == "+") {
display = Number(operand1)+Number(display);
}
if (operator == "-") {
display = operand1-display;
}
if (operator == "*") {
display = operand1*display;
}
if (operator == "/") {
display = operand1/display;
}
if (operator == "x_rest_y") {
display = Math.pow(Number(operand1), Number(display));
}
if (operator == "exp1") {
display = Number(operand1)*Math.pow(Number(10), Number(display));
}
operator = "=";
clear = true;
decimal = false;
if (newOper != null) {
operator = newOper;
operand1 = display;
}
}
function refresh () {
operator = "=";
clear = true;
decimal = false;
Status ="";
if (newOper != null) {
operator = newOper;
operand1 = display;
}
}
function one_by_x1 () {
display = Number(1/display);
refresh();
}
function x_square () {
display = Number(display*display);
refresh();
}
function disp_pi () {
display = Number(Math.PI);
}
function plus_minus () {
if (display != 0) {
display = Number(-1*display);
} else {
display = Number(display);
}
}
function DoSin () {
display = (Math.sin((display*Math.PI/180)));
refresh();
}
function DoaSin () {
display = Math.asin(display)*(180/Math.PI);
setflag = false;
setProperty (check_inv, _visible, 0);
flag_inv = 0;
refresh();
}
function DoCos () {
if (display == 90) {
display = 0;
} else {
display = (Math.cos((display*Math.PI/180)));
Status = "";
}
refresh();
}
function DoaCos () {
display = Math.acos(display)*(180/Math.PI);
setflag = false;
setProperty (check_inv, _visible, 0);
flag_inv = 0;
refresh();
}
function Dotan () {
if (display == 90) {
display = "Infinity";
} else {
display = Math.tan((display*Math.PI/180));
}
refresh();
}
function Doatan () {
display = Math.atan(display)*(180/Math.PI);
setflag = false;
setProperty (check_inv, _visible, 0);
flag_inv = 0;
}
function DoLogNatural () {
display = Math.log(display);
refresh();
}
function DoN_factorial () {
disp_fact = int(display);
test = display-disp_fact;
if (test>0) {
display = "infinity";
break;
} else if (disp_fact>100) {
display = "Infinity";
break;
} else if (disp_fact == 0) {
display = 1;
Status = "";
} else {
for (i=1; i display = display*i;
}
}
refresh();
}
Çalışmamızı tamamladık sadece fonksiyon buton kodlarını eklemedim ekli dosyadan alabilirsiniz.
Çalışmamızı test edelim CTRL+ENTER
FLA İndir

Aynı şekilde 2. sayı karşısına input text var: secondnumber olarak belirliyoruz.

Şimdi 2 adet buton hazırlayalım + . – şeklinde olsun örnek resim

< + > Butonu seçelim F9 actions penceresine verdiğim kodları ekleyelim
on (release) {
total = Number(firstnumber) + Number(secondnumber);
}< - >Butonu seçelim F9 actions penceresine verdiğim kodları ekleyelim.on (release) {
total = Number(firstnumber) - Number(secondnumber);
}
Artık test edebiliriz CTRL+ENTER]]>