Öncelikle "Fonksiyon nedir?" sorusuna cevap vermeye çalışalım. Fonksiyon belirli bir amaç için yazılmış, duruma göre kendisine verilen verileri işleyerek programcının belirleyeceği tipte verileri üreten program parçasıdır. Bu cümleden yola çıkarak şunu sorabiliriz, "Neden fonskiyon yazma ihtiyacım olsun ki? Aynı işlemi ana program bloğu içinde de pekala yapabilirim." Kesinlikle doğru fonksiyonları kodladığımız gibi ana program bloğunu da kodlayabiliriz ancak bunun şöyle bir olumsuzluğu vardır. Aynı işlemi yazdığımız kod bloğunda farklı noktalarda tekrarlamak istediğimizde aynı kodları yeniden yeniden yazmak durumunda kalırız. Bu işlem yazdığımız kodların gereksiz yere şişmesine neden olur. İşte tam burada fonksiyonları kullanırız.

Dikkat : Fonskiyon aynı işlemin farklı veriler üzerinde istenildiği kadar yapılmasına izin veren bir yapıdır. Bir kez kodlanır sonrasında değişik parametrelerle istenildiği kadar çağırılarak kullanılabilir. Fonksiyonlar gereksiz kod yazımını engeller ve modüler kod yazmaya imkan verirler.

Fonksiyonları yapıları itibari ile ikiye ayırabiliriz:
1. Kullanıcı tanımlı fonksiyonlar
2. Standart fonksiyonlar.
Kullanıcı tanımlı fonksiyonlar tamamen programcı tarafından kodlanır ve kullanılırlar yani fonksiyonun kaynak kodları programcıya aittir. Diğer yandan standart kütüphanede yer alan fonksiyonların kaynak kodları programcıya kapalı olup programcı bunları sadece programında uygun yerlerde uygun parametrelerle çağırarak kullanabilir. Fonksiyonları parametere alıp almamalarına bağlı olarak ta gruplayabiliriz.
1. Parametre almayan ve değer döndürmeyen fonksiyonlar.
2. Parametre alıp değer döndürmeyen fonksiyonlar.
3. Parametre alıp değer döndüren fonksiyonlar.
Şimdi öncelikle kullanıcı tanımlı fonksiyonlara kısaca bir bakalım. Kullanıcı tanımlı fonksiyon aşağıda verildiği gibi function deyimi ile başlar ve değişken isimlendirme kurallarına uygun bir isimle devam eder. Sonrasında parametre alacaksa parametre isimleri ve bunlara ait tip tanımlamalarını son olarak da geriye değer döndürecekse dönüş veri tipi tanımlamasını döndürmeyecekse Void tanımlamasını alır.

//Geriye değer döndürecek olan bir fonksiyonun genel yapısı
function fonksiyonAdi(parametre1:tip,parameter2:tip,...parametren:tip):Geri döndürülecek veri tipi {
Program satirlar;
}//fonksiyon bloğu sonu

//Geriye değer döndürmeyen bir fonksiyonun genel yapısı
function fonksiyonAdi(parametre1:tip,parameter2:tip,...parametren:tip):Void {
Program satirlar;
}//fonksiyon bloğu sonu

Dikkat : Fonksiyonlar değer döndürüyorsa çaığırldıkları noktada tek başlarına kullanılamazlar, mutlaka bir başka fonksiyonun içinde, değer atama vb. bir işlemde kullanılmaları gerekmektedir. Değer üreten fonksiyonların ürettikleri değerler fonksiyon ismi üzerinden geri döner bu nedenle kısmen biraz hatalı bir tanımlama da olsa; "değer üreten fonskiyonlar kendilerine verilen değerlere göre sonuç üreten değişkenler gibidirler bu nedenle tek başlarına kullanılamazlar" tanımlamasını yapabiliriz. Fonsiyonları çağırdığımız noktada kullanacağımız fonksiyon parametre alsın ya da almasın mutlaka parantez işaretlerini kullanmalıyız.

Şimdi buraya kadar anlattıklarımızı bir kaç küçük örnek ile pekiştirelim. Olaya en temel noktadan başlayalım kendisine verilen iki adet sayıyı toplayan bir fonksiyon yazalım.

Örnek-1:
function topla(sayi1:Number,sayi2:Number):Number{
return(sayi1+sayi2);
}//topla
//Şimdi yazdığımız bu fonksiyonu çağırarak kullanalım.
trace(topla(25,10)); //ya da sahnede yer alan sonuc_txt dinamik metin nesnesinde işlem sonucunu görüntüleyelim.
sonuc_txt.text=topla(25,10).toString();

//Aynı fonskiyonu değer döndürmeyecek şekilde yeniden yazalım ve kullanalım.
function topla(sayi1:Number,sayi2:Number):Void{
var sonuc:Number= sayi1+sayi2;
trace(sonuc);
//ya da sahnede yer alan sonuc_txt dinamik metin nesnesinde işlem sonucunu görüntüleyelim.
sonuc_txt.text=sonuc.toString();
}//topla
//Şimdi yazdığımız bu fonksiyonu çağırarak kullanalım. Görüldüğü üzere değer döndürmeyen foksiyon tek başına çağırılarak kullanilabilir.
topla(25,10);
Örnek-2: Aşağıda verilen örnekte tarih sınıfına ait standart fonksiyonlar kullanılarak saat:dakika:saniye formatında zaman bilgisi üreten saatKac() fonksiyonu yazılmıştır.

//parametre almayan string tipinde veri döndüren kullanıcı tanımlı fonksiyon
function saatKac():String{
var tarih:Date= new Date();
return(tarih.getHours() + ":" + tarih.getMinutes()+ ":" + tarih.getSeconds());
}
trace(saatKac());

Şimdi aynı örneği değer döndürmeyecek şekilde yeniden yazalım.
function saatKac():Void{
var tarih:Date= new Date();
trace(tarih.getHours() + ":" + tarih.getMinutes()+ ":" + tarih.getSeconds());
//ya da sahnede yer alan sonuc_txt dinamik metin nesnesinde işlem sonucunu görüntüleyelim.
sonuc_txt.text=tarih.getHours() + ":" + tarih.getMinutes()+ ":" + tarih.getSeconds();
}
saatKac();
//Değer döndürmediği için fonksiyonu sadece adını yazarak çağırp kullanabiliyoruz.

Bundan sonraki makalelerde verilen fonksiyonları inceleyerek fonksiyonlar hakkında daha net bilgiler alabilirsiniz.

Yardımcı olması dileği ile.