ActionScript, esas olarak Adobe Flash platformunda uygulama ve oyun geliştirmek için kullanılan nesne yönelimli bir programlama dilidir. Geliştiricilerin zengin internet uygulamaları, etkileşimli animasyonlar ve dinamik web içeriği oluşturmasına olanak tanıyan Flash multimedya ortamıyla yakından ilişkilidir. Flash'ın düşüşüyle birlikte büyük ölçüde popülaritesini yitirmiş olsa da, 2000'lerin başında web teknolojilerinin evriminde önemli bir rol oynamıştır.
ActionScript, 1990'ların sonlarında Macromedia (daha sonra Adobe tarafından satın alındı) tarafından Flash için bir betik dili olarak oluşturulmuştur. İlk versiyonu olan ActionScript 1.0, 1999 yılında Flash 5 ile birlikte piyasaya sürülmüştür. Yıllar içinde çeşitli versiyonlar tanıtılmış ve 2006'da ActionScript 3.0'a ulaşılmıştır; bu versiyon, daha yapılandırılmış bir nesne yönelimli programlama modeli ve performans iyileştirmeleri gibi önemli geliştirmeler getirmiştir.
HTML5, CSS3 ve JavaScript teknolojilerinin yükselmesiyle birlikte Flash ve ActionScript kullanımı dramatik bir şekilde azalmıştır. Adobe, 31 Aralık 2020'de Flash Player desteğini resmi olarak sonlandırmış ve bu, ActionScript'in modern web geliştirmedeki öneminin sona erdiğini göstermiştir. Ancak, bazı eski uygulamalar hala eski sistemlerde çalışmakta ve belirli endüstriler tarafından bakım yapılmaktadır.
ActionScript, etkinlik odaklı modeli ve sözdizimi benzerlikleri nedeniyle başta JavaScript olmak üzere birkaç programlama dilinden etkilenmiştir. Ayrıca, nesne yönelimli yapılar açısından Java ve C# gibi dillere de benzerlik göstermektedir. ActionScript üzerine inşa edilen birçok çerçeve, örneğin Adobe Flex, Flash platformunun kurumsal uygulama geliştirme yeteneklerini zenginleştirmiştir.
Tarihsel olarak, ActionScript zengin internet uygulamaları (RIA'lar), çevrimiçi oyunlar, etkileşimli web deneyimleri ve eğitim araçları için yaygın olarak kullanılmıştır. Geliştiriciler, görsel animasyonlar oluşturmak ve web sitelerine multimedya unsurları entegre etmek için sıklıkla kullanmışlardır; bu, modern HTML5 tabanlı çerçevelerin ortaya çıkmasından önce özellikle popülerdi.
ActionScript, nesne yönelimli programlama ilkelerine uymaktadır. Sınıflar, kalıtım ve kapsülleme, kodu verimli bir şekilde yapılandırmanın temel unsurlarıdır.
class Animal {
public var name:String;
public function Animal(name:String) {
this.name = name;
}
public function speak():void {
trace("Ben bir " + name + "im");
}
}
var dog:Animal = new Animal("Köpek");
dog.speak(); // Çıktı: Ben bir Köpek'im
ActionScript'in olay modeli, geliştiricilerin kullanıcı etkileşimlerini kolayca yönetmelerine olanak tanır. Olay dinleyicileri, tıklama, klavye girişi gibi olayları yönetmek için nesnelere eklenebilir.
button.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
trace("Butona Tıklandı!");
}
ActionScript'teki değişkenler güçlü bir şekilde tiplenebilir, bu da geliştiricilerin bir değişkende saklanabilecek veri türünü tanımlamasına olanak tanır ve bu, çalışma zamanı hatalarını azaltmaya yardımcı olur.
var score:int = 0; // score yalnızca tam sayı değerlerini tutabilir
ActionScript, XML verilerini kolayca ayrıştırma ve manipüle etme yetenekleri ile birlikte gelir.
var xmlData:XML = <note><to>Tove</to><from>Jani</from></note>;
trace(xmlData.to); // Çıktı: Tove
ActionScript, matematiksel hesaplamalar, tarih manipülasyonu ve dize işlemleri gibi görevleri yerine getirmek için çeşitli yerleşik fonksiyonlar sağlar.
var pi:Number = Math.PI; // Pi değerini alma
trace(Math.ceil(2.3)); // Çıktı: 3
ActionScript güçlü bir şekilde tiplenmiş olmasına rağmen, dinamik tipleri de destekler; bu, geliştiricilerin değişkenleri türlerini açıkça belirtmeden tanımlamasına olanak tanır.
var message:* = "Merhaba";
message = 42; // Dinamik tipleme nedeniyle izin verildi
ActionScript kodu, uygulama için kodu yorumlayan ve çalışma zamanı yürütmesini yöneten bir Flash Player ortamında çalıştırılır.
ActionScript, karmaşık hiyerarşik ilişkiler ve tasarım ilkeleri sağlamak için sınıf kalıtımını ve arayüzleri destekler.
class Dog extends Animal {
public override function speak():void {
trace("Hav! Ben bir " + name + "im");
}
}
var myDog:Dog = new Dog("Buddy");
myDog.speak(); // Çıktı: Hav! Ben bir Buddy'im
ActionScript'teki düzenli ifadeler, karmaşık dize desen eşleştirme ve manipülasyonu sağlar.
var regex:RegExp = /[a-z]+/g;
var result:Array = "Merhaba Dünya".match(regex);
trace(result); // Çıktı: Merhaba, Dünya
ActionScript, hata yönetimi için try-catch blokları kullanır; bu, geliştiricilerin istisnaları zarif bir şekilde yakalayıp yönetmesine olanak tanır.
try {
var value:int = parseInt("bir sayı değil");
} catch (e:Error) {
trace("Hata: " + e.message);
}
Adobe Flash Professional (daha sonra Adobe Animate), ActionScript geliştirme için kullanılan ana entegre geliştirme ortamı (IDE) olmuştur. FlashDevelop ve IntelliJ IDEA gibi diğer popüler IDE'ler de ActionScript desteği sunmaktadır.
Bir proje geliştirmek genellikle şunları içerir:
ActionScript kodu, SWF dosyalarını son kullanıcı cihazlarında yorumlayan ve çalıştıran Adobe Flash Player çalışma ortamında yürütülür. ActionScript uygulamalarını çalıştırmak için Flash Player'ın kullanıcının tarayıcısında veya makinesinde yüklü olması gerekir.
ActionScript, esas olarak aşağıdaki alanlarda kullanılmıştır:
Hem ActionScript hem de JavaScript, etkinlik odaklı dillerdir; ancak JavaScript daha çok yönlü hale gelmiş ve özellikle Node.js ve modern çerçeveler olan React ve Angular ile web geliştirme için standart haline gelmiştir.
ActionScript ve C#, nesne yönelimli özellikler paylaşır; ancak C#, esas olarak masaüstü, web ve mobil uygulamalar için, özellikle .NET çerçevesi içinde kullanılmaktadır.
ActionScript'in sözdizimi, basitlik ve okunabilirliğe vurgu yapan Python'dan daha az esneklik gösterir. Python, ayrıca web geliştirme dışında çeşitli uygulamalar için önde gelen bir dil haline gelmiştir.
Java'nın güçlü tipleri ve nesne yönelimli özellikleri, ActionScript'e benzer; ancak Java'nın JVM (Java Sanal Makinesi) aracılığıyla platform bağımsızlığı, ActionScript'in Flash çalışma zamanına bağımlılığı ile çelişmektedir.
Ruby dinamik bir dildir ve verimlilik için tasarlanmıştır; oysa ActionScript, web üzerindeki etkileşimli içerik oluşturma üzerine daha fazla odaklanmıştır.
ActionScript için özel olarak tasarlanmış çok fazla kaynak-kaynağa çeviri aracı olmasa da, ActionScript'i JavaScript veya HTML5 tabanlı çözümlere dönüştürme çabaları mevcuttur. CreateJS ve Phaser gibi araçlar, geliştiricilerin ActionScript oyunlarını daha modern bir web ortamına taşımalarına olanak tanır.