ActionScript 2.0’da Fonksiyon Kapsamını Anlamak
ActionScript 2.0’da iç içe bir fonksiyonu çağırmakta zorlanıyor musunuz? Yalnız değilsiniz. Bu sorun, diğer programlama dillerinden geçiş yapan geliştiricileri sıklıkla kafa karıştırmaktadır. Bu yazıda, ActionScript’teki fonksiyon deklarasyonlarının inceliklerini ele alacak ve fonksiyonlarınızı etkili bir şekilde çağırmak için sağlam çözümler sunacağız.
Karşılaşılan Problem
Senaryoyu inceleyelim. parentFunction()
adlı bir fonksiyonunuz var ve bu fonksiyon içinde callMe()
adlı başka bir fonksiyon bulunuyor. Amaç, callMe()
‘yi kodunuzun başka bir yerinde, örneğin bir onRelease
olay işleyicisinde çağırmaktır. İşte verilen kodun temel sorunu:
//Fonksiyon Deklarasyonları
function parentFunction()
{
function callMe()
{
textField.text = "lawl";
}
}
on(release)
olayından callMe()
‘yi çağırmaya çalıştığınızda, aşağıdaki çağrıların hiçbiri çalışmaz:
on(release)
{
callMe(); // çalışmaz
parentFunction().callMe(); // çalışmaz
parentFunction.callMe(); // çalışmaz
}
Çözüm: Fonksiyon Kapsamını Anlamak
Neden Çalışmıyor
callMe()
‘yi çağırma girişiminiz başarısız oluyor çünkü ActionScript 2.0’da fonksiyonlar kendi kapsamına sahiptir. callMe()
fonksiyonunu parentFunction()
içinde tanımladığınızda, bu özel bir fonksiyon haline gelir. Bu, callMe()
‘nin tanımlandığı fonksiyonun dışından erişilemeyeceği anlamına gelir.
Fonksiyon Kapsamını Doğru Tanımlama
İç içe bir fonksiyonu başarılı bir şekilde çağırabilmek için birkaç kılavuza uymanız gerekir:
-
Bir Fonksiyonu Başka Bir Fonksiyonun Dışında Tanımlama: Genel olarak, bir fonksiyona birden fazla yerden erişim sağlamak istiyorsanız, onu üst fonksiyonunun dışına tanımlayın.
function callMe() { textField.text = "lawl"; } function parentFunction() { // Diğer kodlar... }
-
Nesne Döndüren Yöntemler Kullanma: Eğer fonksiyonu üst fonksiyonda kapsamak bir amaca hizmet ediyorsa, iç içe fonksiyonun ihtiyaç duyulduğunda erişilebilir olabilmesi için doğru mimariyi kurmalısınız. Genellikle, fonksiyonlar arasındaki karmaşık ilişkileri yönetmek için nesneleri kullanırsınız.
- JavaScript’te benzer yöntemler, yöntemler için prototipler kullanır. Ancak, ActionScript’in kendi kuralları vardır.
Önerilen Kaynaklar
- JavaScript’te fonksiyonların nasıl yapılandırılacağını daha iyi anlamak için JavaScript Nesneleri üzerine bu eğitim makalesine göz atın.
- ActionScript’teki işlevselliğin daha incelikli kavramlarını kavramak için Adobe DevNet belgelere göz atın.
Son Düşünceler
Özetle, ActionScript 2.0’da iç içe fonksiyonların kapsama alanı, bulundukları fonksiyonlarla sınırlıdır. Böyle fonksiyonlara daha geniş bir erişim gerektiriyorsanız, onları global kapsamda tanımlamak veya uygun erişim kontrolleri oluşturmak için nesne yönelimli ilkeleri kullanmak daha tavsiye edilir. Özel ve genel fonksiyonlar arasındaki farklarla ilgili hâlâ kafanız karışıksa, JavaScript’in özel/genel fonksiyon tartışması üzerine bağlı makale ek bir netlik sağlayabilir.
Mutlu kodlamalar, ve sorularınız varsa ya da daha fazla yardıma ihtiyaç duyuyorsanız, çekinmeden ulaşın!