ActionScript 3.0′da Neler Yeni?

Yazan: Hakan Çamoğlu on Ocak 25th, 2008

ActionScript 3.o’ın kullanılabileceği platformlar artık Flash ile sınırlı değildir. Flash CS3 ortamı dışında Flex Builder ortamında da ActionScript 3.0 kullanılmaktadır. ActionScript 3.0 ile ActionScript 2.0 arasındaki farklar ise aşağıdaki gibidir…

  • Görüntüleme Listesi (Display List)
    ActionScript 2.0′da görüntüleme yapılabilecek 3 temel öğe vardı. Bunlar; Movie Clip, Button ve Text Field… ActionScript 3.0′da Movie Clip, Button ve Text Field dışında, shape, sprite, loader, bitmap vs. gibi birçok yeni görüntüleme tipi vardır.
  • Runtime Hatalar (Runtime Errors)
    ActionScript 3.0′da yaptığınız uygulamaları çalışma esnasında hataları görerek çok daha hızlı bir şekilde hataları giderebilirsiniz.
  • Runtime Veri Tipleri (Runtime Data Types)
    ActionScript 3.0′da çalışma esnasında veri tipleri yaratarak oluşan hataları raporlayabilir, uygulamaların performansını arttırabilirsiniz.
  • Methodların Sonu (Method Closures)
    ActionScript 2.0′da nesnelerde kullanılan methodlar ActionScript 3.0′da kullanılmayacak. ActionScript 3.0 ile birlikte olaylar ve olay işleyiciler kullanılmaktadır.
  • Yerleşik Olay Modeli (Intrinsic Event Model)
    ActionScript 3.0 ile olay modeli çekirdek bir hale getirilmiştir. Bu sayede uygulama sırasında kullanılacak tüm olaylar standart bir hale gelmiştir.
  • Düzenli İfadeler (Regular Expressions)
    ActionScript 3.0 ile metinlerle daha etkili çalışmak, metinleri düzenlemek ve metinlerden alt metinler elde etmek için düzenli ifadeler kullanılmaktadır.
  • E4X (ECMAScript for XML)
    ActionScript 3.0′da XML veriler ile çalışmak için yeni bir yol kullanılmaktadır. Bu yeni yol sayesinde XML veriler ile çok daha etkili bir şekilde çalışabilirsiniz.

ActionScript Nedir?

Yazan: Hakan Çamoğlu on Ocak 23rd, 2008

ActionScript, Flash Player için içerik yaratmakta kullanılan bir programlama dilidir. ActionScript ile dinamik, kullanıcıya yanıt veren, yeniden kullanılabilen ve uyarlanabilir Flash uygulamaları yapabilirsiniz.

ActionScript ile yapılabileceklere örnek vermek gerekirse kısaca:

  • Resimler yükleyebilir
  • Ses ve video oynatabilir
  • Çizimler yapabilir
  • XML dosyasından data yükleyebilir
  • Mouse tıklaması gibi olaylara yanıt verebilirsiniz.

Harici Resim Yüklemek

Yazan: Hakan Çamoğlu on Ocak 21st, 2008

Flash uygulamalarda gereksiz yere dosya boyutunu büyütmemek ve dinamik bir uygumala geliştirmek için, flash uygulamalarımıza çalışma esnasında dışarıdan ses (mp3), hareketli grafik (flv ve swf) ve resim (jpg,gif ve png) yükleyebilirsiniz.

Yükleniyor

Harici resim yüklemek için bu örneğimizde Flash Components (Bileşenleri) kullanacağız.

  1. Components panelini açmak için Window > Components (Ctrl+F7) seçimini yapın.
    Flash Components
  2. Components panelinden UILoader bileşenini sahneye sürükleyip bırakın ve daha sonra bu bileşeni seçili hale getirerek Properties panelinden genişlik değerine 320, yükseklik değerine 240 ve Instance Name kısmına foto değerlerini verin.
    UILoader Component
  3. UILoader bileşenini eklediğimiz layera loader ismini verin. Dana sonra loader layerının üstüne yeni bir layer ekleyin. Bu yeni layera scripts ismini vererek bu layerdaki 1.frame seçili hale getirin ve Actions Paneli açın (F9).
    Timeline
  4. foto ismini verdiğimiz UILoader bileşenine dışarıdan bir resim yüklemek için aşağıdaki kodu Actions Paneline yazın. Bu kod bloğundaki foto bileşenimizin adı, gunBatimi.jpg ise fotoğrafımızın yolunu ve ismini belirtmektedir.
    Actions Panel
  5. Resim yükleme işlemimizi tamamladık. Şimdi ise resmin yüklenme aşamasında kullanıcıya bilgi verecek yükleniyor kısmını yapalım. Bunun için Components panelinden ProgressBar bileşenini loader layerının üzerinde yukleniyor isimli yeni bir layer oluşturarak buraya sürükleyelim.
    Flash Components
  6. ProgressBar bileşenini seçin ve Properties panelinden Instance Name alanına bar yazarak bir örnek isim tanımlayın.
  7. Daha sonra Properties panelinin yan tarafında bulunan Parameters panelini aktif hale getirerek source kısmına yüklenip yüklenmediği kontrol edilecek nesne olan foto değerini yazın.
    ProgressBar Source
  8. Son olarak scripts layerının 1.karesini seçili hale getirerek Actions Panelini açın ve aşağıdaki kod bloğunu yazın. Bu kod bloğunun ilk satırında progressBar için bir olay işleyici tanımlıyoruz. 2. satırda ise bu olay işleyicinin hangi olayı takip edeceğini belirliyoruz. Son olarakta olay işleyicinin bu olay ile karşılaştığında ne yapacağını söylüyoruz.
    Actions Panel

Örnek dosyayı buradan indirebilirsiniz.

ActionScript 3.0 Özellikler

Yazan: Hakan Çamoğlu on Ocak 20th, 2008

ActionScript 3.0 ile yazacağımız ilk kod bir MovieClip’in özelliklerini değiştirsin.
Bunun için ilk önce bir kare çizin ve bu kareyi sembole dönüştürün (F8). Sembol tipi olarak MovieClip seçin ve ismini kare_mc olarak belirleyin.

Sembole çevirdiğimiz kareye ActionScript ile komut verebilmek için mutlaka örnek isim (instance name) vermemiz gerekiyor.
Sembole çevirdiğiniz kareyi seçtiğinizde alttaki properties panelinin en solunda instance name alanını görebilirsiniz.Bu alana kare_mc yazın.

Artık karemiz ActionScript ile yönetilmeye hazır. Timeline dan 1.Anahtar Kareyi seçip F9 tuşuna basarak Actions panelini açın.

Karenin görünürlüğü değiştirmek için ActionScript’ te alpha özelliğini kullanıyoruz.Aşağıdaki kodu Actions paneline yazın ve sonrasında Ctrl+Enter ile test ederek ilk kodunuzun çalıştığını onaylayın.

kare_mc.alpha = 0.5;

İşte hepsi bu! Filmimizi test ettiğimizde karemiz %50 transparent bir şekilde gözükecektir.

Yazdığımız kodu kısaca incelersek; ilk olarak yazacağımız kodun neye etki edeceğini belirliyoruz. Bu örnekte kare_mc. Daha sonra “.” koyuyoruz. Burada koyduğumuz “.” kare_mc’nin anlamını taşımaktadır. Daha sonrada kare_mc’nin hangi özelliğini değiştireceğimizi belirliyoruz…

Sonuç olarak yazdığımız kod kare_mc’nin alphası = 0.5 anlamına gelmektedir.

Sembolümüzü isimlendirirken vermiş olduğumuz _mc soneki onun bir MovieClip olduğunu ActionScript’e bildirir. Böylece ActionScript paneline kodumuzu yazarken kare_mc’den sonra “.” koyduğumuz anda MovieCliplerde kullanabileceğimiz komutların bir listesi karşımıza gelir.

alpha değeri Actionscript 3.0’ da 0 ile 1 arasında değişmektedir. 0 tamamen transparent olması, 1 ise tamamen görünmesi anlamına gelmektedir.Aynı mantığı kullanarak kare_mc’nin birçok özelliğini değiştirebiliriz. Örneğin aşağıdaki kodu yazarak kare_mc’nin boyutlarını değiştirin.

kare_mc.width = 100;kare_mc.height = 100;

Ctrl+Enter ile filminizi test ettiğinizde genişliği ve yüksekliği 100px olan bir kare karşınıza çıkacaktır.Şimdi kare_mc’yi biraz da döndürelim.
kare_mc.rotation = 45;Yine benzer komutlarla kare_mc’nin konumunu da değiştirebiliriz. Bunun için tek yapmanız gereken kare_mc’nin koordinatlarını değiştirmek.Aşağıdaki kodu mecvut kodların altına ekleyerek kare_mc’nin konumunu değiştirin.

kare_mc.x = 200;kare_mc.y = 100;

Hepinize kolay gelsin…

ActionScript 3.0 Olaylar ve Olay İşleyiciler

Yazan: Hakan Çamoğlu on Ocak 20th, 2008

Olaylar Nasıl Kullanılır?

ActionScript’ te olay kullanımını temel olarak anlatacak olursak; öncelikle bir dinleyici tanımlıyoruz. Bu dinleyici etrafta ne olup bittiğini takip ediyor ve eğer bizim ona söylediğimiz olay olursa tanımladığımız görevin başlamasını sağlıyor.

Tanımladığımız bu sistemi kod üzerinde görecek olursak…

hedef.addEventListener(olayTipi.olay, fonkAdi);
function
fonkAdi(event:olayTipi)
{
//Yapılmasını istedikleriniz
}

Bu kod bloğunda gördüğümüz hedef.addEventListener bölümü hedef isimli nesnede tanımladığımız dinleyiciyi oluşturuyor. Parantez içinde yazan bilgiler ise bu dinleyicinin hangi olay olduğunda hangi görevi başlatacağını belirtmekte. İkinci kısımda yer alan function… kısmı ise bizim tanımladığımız görevi oluşturuyor.

Şimdi örneklerle olayları kullanmaya başlayalım.

Mouse Olayları

ActionScript’te mouse olaylarını, dinleyici ve görev tanımı yaparken kullandığımız olayTipi yerine MouseEvent yazarak kullanırız.

MouseEvent’lerin tam listesine, dinleyiciyi tanımlarken MouseEvent yazdıktan sonra “.” koyduğunuzda karşınıza çıkan menüden ulaşabilirsiniz. Bu menüde büyük harf ile yazanlar MouseEvent’leri oluşturmaktadır.

Şimdi tıklandığında www.webders.com’un açılmasını sağlayan bir buton yapalım.

Öncelikle bir buton tasarlayın ve bunu Button olarak sembole dönüştürün (F8).

Hazırladığınız butona webders_btn örnek ismini verin ve timeline’da 1. anahtar kareyi seçerek aşağıdaki kodu yazın.

webders_btn.addEventListener(MouseEvent.CLICK, yonlendir);

function
yonlendir(event:MouseEvent)
{
var url:URLRequest = new
URLRequest(“http://www.webders.com”);
navigateToURL(url, “_blank”);
}

Webders.com sitesine yönlendiren butonumuz hazır. Burada dikkat etmeniz gereken noktalar; kodu anahtar kareye yazmak ve butona webders_btn ismini vermiş olmak.

ActionScript 3.0’da 2.0’dan farklı olarak kod yazabileceğimiz tek yer anahtar karelerdir!

Süreklilik Sağlamak

Bu örneğimizde, istediğimiz görevin sürekli yerine getirilmesini sağlayalım.

Örnek uygulama olarak sağa doğru sürekli hareket eden bir kare animasyonu yapalım.


Öncelikle boş bir doküman açın ve bir kare çizerek bu kareyi Movie Clip olarak sembole dönüştürün. Ardından sembole kare_mc örnek ismini vererek timeline’da 1. anahtar kareye aşağıdaki kodları yazın.

stage.addEventListener(Event.ENTER_FRAME, surekli);
function
surekli(event:Event)
{
kare_mc.x++;
}

Yazdığımız kod bloğunda kullandığım ENTER_FRAME olayının anlamı bu karede olduğun sürece anlamına gelmektedir.

Önceki örnekten farklı olarak burada bir de hedef olarak stage yazdık. Bunu yaparak, dinleyicinin sadece belirli bir sembolü değil sahnede olup biteni dinlemesini söylemiş olduk.

ENTER_FRAME olayı frame rate ile bağlantılıdır. Tanımladığımız olay işleyici frame rate hızına bağlı olarak belirlediğimiz görevi yerine getirecektir.

Görev bölümünde yazmış olduğumuz kare_mc.x++; ise, kare_mc’nin x koordinatını 1 arttır anlamına gelmektedir.

Klavye Olayları

Özellikle oyun kodlamalarında son derece en önemli olaylardan birisi klavye olaylarıdır.

Şimdi de klavyede bir tuşa basıldığında belirli bir görevi nasıl yerine getireceğimizi görelim.

Az önceki örnekte yaptığımız, kareyi sağa doğru hareket ettirme işlemini şimdi klavyeden herhangi bir tuşa basıldığında yapalım.

Klavyede herhangi bir tuşa basıldığında karenin sağa doğru hareket etmesi için az önceki örnekte yazdığımız kod yerine aşağıdaki kodu yazın.

stage.addEventListener(KeyboardEvent.KEY_DOWN, hareket);
function
hareket(event:KeyboardEvent)
{
kare_mc.x++;
}

Olaylar ve olay işleyiciler, ActionScript kodlama yaptığımız her projemizde kullanmamız gereken en temel konudur.


Copyright © 2007 ActionScript Türkiye. All rights reserved.