Kategoriler
Action Script 3.0 Notları

ActionScript 3.0’a giriş

Bu bölümde, en yeni ve en yenilikçi ActionScript sürümü olan Adobe® ActionScript® 3.0’a genel bakış sağlayacağız.

ActionScript hakkında

ActionScript, Adobe® Flash® Player ve Adobe® AIR™ çalışma zamanı ortamları için programlama dilidir. Flash, Flex ve
AIR içerik ve uygulamalarında etkileşim, veri işleme ve daha fazlasına olanak sağlar.
ActionScript, Flash Player ve AIR uygulamasının bir parçası olan ActionScript Virtual Machine (AVM) tarafından
çalıştırılır. ActionScript kodu, Adobe® Flash® CS4 Professional veya Adobe® Flex™ Builder™ uygulamasında yerleşik
olanlar ya da Adobe® Flex™ SDK uygulamasında kullanılabilir olanlar gibi, genellikle bir derleyici tarafından bayt kodu
formatında (bilgisayarlar tarafından yazılan ve anlaşılan bir çeşit programlama dili) derlenir. Bayt kodu, Flash Player
ve AIR uygulamaları tarafından çalıştırılan SWF dosyalarında gömülüdür.


ActionScript 3.0, nesne tabanlı programlama konusunda temel bilgisi olan geliştiricilere bilindik gelecek güçlü bir
programlama modeli sunar. ActionScript 3.0’ın önceki ActionScript sürümlerinden daha gelişmiş olan bazı önemli
özellikleri arasında şunlar yer alır:

  • AVM2 adı verilen ve yeni bir bayt kodu talimat kümesi kullanıp önemli ölçüde performans artışı sağlayan yeni bir ActionScript Virtual Machine.
  • Önceki derleyici sürümlerinden daha derin eniyileştirmeler gerçekleştiren daha modern bir derleyici kodu
  • Düşük düzeyde nesne denetimi ve gerçek bir nesne odaklı model içeren, genişletilmiş ve geliştirilmiş bir uygulama programlama arabirimi (API)
  • XML için ECMAScript (E4X) belirtimini (ECMA-357 sürüm 2) esas alan XML API’si. E4X, dilin yerel veri türü olarak ECMAScript’e XML ekleyen bir dil uzantısıdır.
  • Belge Nesnesi Modeli (DOM) Düzey 3 Olaylar Belirtimi’ni esas alan bir olay modeli

ActionScript 3.0’ın avantajları

ActionScript 3.0, önceki ActionScript sürümlerinin komut dosyası oluşturma yeteneklerinden çok daha fazlasını
sunar. Büyük veri kümeleri ve nesne tabanlı, yeniden kullanılabilir kod tabanları ile oldukça karmaşık uygulamaların
oluşturulmasını kolaylaştırmak üzere tasarlanmıştır. ActionScript 3.0, Adobe Flash Player uygulamasında çalışan
içerik için gerekmese de, yalnızca yeni sanal makine olan AVM2 ile kullanılabilen performans artışına bir kapı açar.
ActionScript 3.0 kodu, eski ActionScript kodundan on kata kadar daha hızlı çalışabilir.
Eski ActionScript Virtual Machine sürümü olan AVM1, ActionScript 1.0 ve ActionScript 2.0 kodunu çalıştırır.
Varolan ve eski içerikle geriye doğru uyumluluk sağlamak için Flash Player 9 ve 10 tarafından AVM1 desteklenir. Daha
fazla bilgi için, bkz. “Önceki sürümlerle uyumluluk”.

 

ActionScript 3.0’daki yenilikler

ActionScript 3.0, ActionScript programcılara tanıdık gelen birçok sınıf ve özellik içerse de, ActionScript 3.0 mimari ve
kavramsal açıdan önceki ActionScript sürümlerinden farklıdır. ActionScript 3.0’daki geliştirmeler arasında, çekirdek
dilin yeni özellikleri ve düşük düzeyli nesneler üzerinde daha yüksek denetim sağlayan gelişmiş Flash Player API’si yer
alır.
Not: Adobe® AIR™ uygulamaları, Flash Player API’lerini de kullanabilir.

  • Çekirdek dil özellikleri
    Çekirdek dil, programlama dilinin deyimler, ifadeler, koşullar, döngüler ve türler gibi temel bina bloklarını tanımlar.
    ActionScript 3.0, geliştirme işlemini hızlandıran birçok yeni özellik içerir.
  • Çalışma zamanı istisnaları
    ActionScript 3.0, önceki ActionScript sürümlerinden daha çok hata koşulu bildirir. Yaygın hata koşulları için çalışma zamanı istisnaları kullanılarak hata ayıklama deneyimini geliştirir ve hataları daha güçlü şekilde işleyen uygulamalar geliştirmenizi sağlar. Çalışma zamanı hataları, kaynak dosya ve satır numarası bilgilerini ek açıklama olarak veren yığın izleri sağlayarak hızlı şekilde hataların yerini belirlemenize yardımcı olur.
  • Çalışma zamanı türleri
    ActionScript 2.0’da tür ek açıklamaları birincil olarak geliştiriciye yardım sağlama amaçlıydı; çalışma zamanında tüm değerler dinamik olarak türlenmiştir. ActionScript 3.0’da, tür açıklamaları çalışma zamanında korunur ve birçok amaç için kullanılır. Flash Player ve Adobe AIR, çalışma zamanı, çalışma zamanı tür denetlemesi uygulayarak sistemin tür güvenliğini artırır. Tür bilgileri aynı zamanda yerel makine temsillerinde değişkenleri temsil etmek için de kullanılarak performansı artırır ve bellek kullanımını azaltır.
  • Mühürlenmiş sınıflar
    ActionScript 3.0, mühürlenmiş sınıf kavramını getirmiştir. Mühürlenmiş bir sınıf, derleme zamanında tanımlanmış yalnızca sabit özellikler ve yöntemler kümesine sahiptir; bu sınıfa ek özellikler ve yöntemler eklenemez. Bu da daha katı derleme zamanı denetlemesi sağlayarak daha güçlü programlar oluşmasına neden olur. Buna ek olarak, nesne örneklerinin her biri için dahili bir karma tablo gerektirmeyerek bellek kullanımını da azaltır. dynamic anahtar sözcüğünün kullanılmasıyla dinamik sınıflar da mümkündür. ActionScript 3.0’daki tüm sınıflar varsayılan olarak mühürlenmiştir ancak dynamic anahtar sözcüğüyle bu sınıfların dinamik olduğu bildirilebilir.
  • Yöntem kapanışı
    ActionScript 3.0, yöntem kapanışının otomatik olarak orijinal nesne örneğini hatırlamasına olanak sağlar. Bu özellik, olay işlemesi için kullanışlıdır. ActionScript 2.0’da, yöntem kapanışları hangi nesne örneğinden ayıklandıklarını hatırlamaz ve bu da yöntem kapanışı çağrıldığında beklenmeyen davranış oluşmasına neden olur. mx.utils.Delegate sınıfı sık kullanılan bir geçici çözümdür ancak artık buna ihtiyaç kalmamıştır.
  • XML için ECMAScript (E4X)
    ActionScript 3.0, en son ECMA-357 olarak standartlaştırılmış olan XML için ECMAScript (E4X) uygular. E4X, XML’in işlenmesi için doğal ve akıcı bir dil yapıları kümesi sunar. Geleneksel XML ayrıştırma API’lerinin tersine, E4X ile XML, dilin yerel bir veri türüymüş gibi hareket eder. E4X, ihtiyaç duyulan kod miktarını büyük ölçüde azaltarak XML’i işleyen uygulamaların geliştirilmesini kolaylaştırır. E4X’in ActionScript 3.0 uygulaması hakkında daha fazla bilgi almak için, bkz. “XML ile çalışma”. ECMA’nın E4X belirtimini görüntülemek için www.ecma-international.org adresine gidin.
  • Normal ifadeler
    ActionScript 3.0, hızlı şekilde dizeleri arayabilmeniz ve işleyebilmeniz amacıyla normal ifadeler için yerel destek içerir. ECMAScript (ECMA-262) sürüm 3 dil belirtiminde belirtildiği şekilde ActionScript 3.0, normal ifadeler için destek uygular.
  • Ad alanları
    Ad alanları, bildirimlerin görünürlüğünü (public, private, protected) kontrol etmek için kullanılan geleneksel erişim belirticilerine benzer. Bunlar, seçtiğiniz adlara sahip olabilen özel erişim belirticileri olarak çalışır. Çakışmaları önlemek için, ad alanlarında bir Universal Resource Identifier (URI) bulunur ve E4X ile çalıştığınızda XML ad alanlarını temsil etmek için de ad alanları kullanılır.
  • Yeni ilkel türler
    ActionScript 2.0, Number adında, çift kesinlikli ve kayan nokta sayısı olan tek bir sayısal türe sahiptir. ActionScript 3.0, int ve uint türlerini içerir. int türü, ActionScript’in CPU için hızlı tam sayı matematik yeteneklerinden faydalanmasına olanak sağlayan 32-bit işaretli bir tam sayıdır. int türü, döngü sayaçları ve tam sayıların kullanıldığı değişkenler için kullanışlıdır. uint türü, RGB renk değerleri, bayt sayıları ve daha fazlası için kullanışlı olan işaretsiz, 32-bit tam sayı türüdür.
  • Flash Player API’sinin özellikleri
    ActionScript 3.0’daki Flash Player API’leri, düşük bir düzeydeki nesneleri kontrol etmenize olanak sağlayan birçok sınıf içerir. Dil mimarisi, önceki sürümlere göre daha sezgisel olacak şekilde tasarlanmıştır. Burada ayrıntılı şekilde ele alınacak çok fazla sayıda yeni sınıf olsa da, ilerleyen bölümlerde bazı önemli değişikliklere yer verilmiştir.

Not: Adobe® AIR™ uygulamaları, Flash Player API’lerini de kullanabilir.

  • DOM3 olay modeli
    Belge Nesnesi Modeli Düzey 3 olay modeli (DOM3), uygulama içindeki nesnelerin etkileşim ve iletişim kurarak durumlarını koruyabilmesi ve değişikliğe yanıt vermesi için olay mesajları oluşturma ve işlemeye yönelik standart bir yöntem sağlar. World Wide Web Consortium DOM Düzey 3 Olaylar Belirtimi’nden sonra düzenlenen bu model, önceki ActionScript sürümlerinde kullanılabilir olan olay sistemlerinden daha net ve daha etkili bir mekanizma sağlar. Olaylar ve hata olayları, flash.events paketinde bulunur. Flash bileşenleri çerçevesi, Flash Player API’siyle aynı olay modelini kullanır, bu nedenle olay sistemi tüm Flash platformunda birleştirilmiştir.
  • Görüntüleme listesi API’si
    Flash Player ve Adobe AIR görüntüleme listesine (uygulamadaki görsel öğeleri içeren ağaç) erişme API’si, görsel ilkel öğelerle çalışmaya yönelik sınıfları içerir. Yeni Sprite sınıfı, hafif bir bina bloğu olup MovieClip sınıfına benzer ancak UI bileşenleri için temel sınıf olarak daha uygundur. Yeni Shape sınıfı ham vektör şekillerini temsil eder. Bu sınıflar new operatörüyle doğal olarak başlatılabilir ve herhangi bir zamanda dinamik olarak yeniden üst öğeye sahip olabilir. Derinlik yönetimi şimdi otomatiktir ve Flash Player ve Adobe AIR uygulamalarında yerleşik olarak bulunur, böylece derinlik sayılarının atamasının oluşturulması gereksizdir. Nesnelerin z sırasının belirtilmesi ve yönetilmesi için yeni yöntemler sağlanır.
  • Dinamik verileri ve içerikleri işleme
    ActionScript 3.0, uygulamanızda varlıkların ve verilerin yüklenmesi için tüm API’de sezgisel ve tutarlı olan mekanizmalar içerir. Yeni Loader sınıfı, SWF dosyalarının ve görüntü varlıklarının yüklenmesi için tek bir mekanizma ve yüklenen içerikle ilgili ayrıntılı bilgilere erişme yolu sağlar. URLLoader sınıfı, veri tabanlı uygulamalarda metin ve ikili verilerin yüklenmesi için ayrı bir mekanizma sağlar. Socket sınıfı, sunucu soketlerine herhangi bir formatta ikili verileri okuyup yazmak için bir araç sağlar.
  • Düşük düzeyli veri erişimi
    Çeşitli API’ler, önceden ActionScript’te asla kullanılabilir olmayan verilere düşük düzeyli erişim sağlar. URLLoader tarafından uygulanan URLStream sınıfı, indirilen veriler için, indirme sırasında verilere ham ikili veriler olarak erişilmesini sağlar. ByteArray sınıfı, ikili verilerle okumayı, yazmayı ve çalışmayı eniyileştirmenize olanak sağlar. Yeni Sound API’si, SoundChannel ve SoundMixer sınıfları üzerinden ayrıntılı ses denetimi sağlar. Güvenlikle ilgilenen yeni API’ler, SWF dosyasının veya yüklenen içeriğin güvenlik ayrıcalıkları hakkında bilgi sağlayarak güvenlik hatalarını daha iyi işlemenize olanak tanır.
  • Metinle çalışma
    ActionScript 3.0, tüm metinle ilgili API’ler için bir flash.text paketi içerir. TextLineMetrics sınıfı, bir metin alanındaki metin satırı için ayrıntılı ölçütler sağlar; ActionScript 2.0’daki TextFormat.getTextExtent() öğesinin yerini alır. TextField sınıfı, bir metin satırı veya bir metin satırındaki tek bir karakter hakkında belirli bilgiler sağlayabilen ilginç özellikte birçok yeni düşük düzeyli yöntemler içerir. Bu yöntemler arasında, bir karakterin sınırlama kutusunu temsil eden dikdörtgeni döndüren getCharBoundaries(), belirtilen bir noktadaki karakterin dizinini döndüren getCharIndexAtPoint() ve bir paragraftaki birinci karakterin dizinini döndüren getFirstCharInParagraph() yer alır. Satır düzeyindeki yöntemler arasında, belirtilen bir metin satırındaki karakterlerin sayısını döndüren getLineLength() ve belirtilen satırın metnini döndüren getLineText() yer alır. Yeni bir Font sınıfı, SWF dosyalarındaki gömülü fontların yönetilmesi için araçlar sağlar.

Önceki sürümlerle uyumluluk

Flash Player her zamanki gibi, önceden yayınlanmış içerikle geriye doğru tam uyumluluk sağlar. Önceki Flash Player sürümlerinde çalışan tüm içerikler Flash Player 9 ve sonrasında da çalışır. Ancak Flash Player 9’da ActionScript 3.0’ın bulunması, eski içerik ile Flash Player 9’da çalışan yeni içerik arasında birlikte çalışılabilirlik konusunda zorluklara yol açabilir.

Uyumluluk sorunları arasında şunlar yer alır:

  • Tek bir SWF dosyası, ActionScript 1.0 veya 2.0 kodunu ActionScript 3.0 koduyla birleştiremez.
  • ActionScript 3.0 kodu, ActionScript 1.0 veya 2.0’da yazılmış bir SWF dosyasını yükleyebilir ancak SWF dosyasının değişkenlerine ve işlevlerine erişemez.
  • ActionScript 1.0 veya 2.0’da yazılmış SWF dosyaları, ActionScript 3.0’da yazılmış SWF dosyalarını yükleyemez. Bu da, Flash 8 veya Flex Builder 1.5 ya da önceki sürümlerde yazılmış SWF dosyalarının ActionScript 3.0 SWF dosyalarını yükleyemediği anlamına gelir. Bu kuralın tek istisnası, ActionScript 2.0 SWF dosyası, düzeylerinden birine önceden herhangi bir şey yüklemediği  sürece, ActionScript 2.0 SWF dosyasının bir ActionScript 3.0 SWF dosyasıyla kendisini değiştirebilmesidir. ActionScript 2.0 SWF dosyası, loadMovieNum() öğesine bir çağrı yapıp level parametresine 0 değerini ileterek bunu yapabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.