İsteğe göre oluşturulan olayları ActionScript 3.0’da olay dinleyicilere dağıtmak için “EventDispatcher” sınıfı miras alınmalıdır. Böylelikle olay sınıfından oluşturulan bir nesne sanki olay hedefi gibi davranacaktır. Ayrıca oluşturulacak olaya bir isim verilmeli ve “EventDispatcher” sınıfının dispatchEvent() metodu kullanılmalıdır.
Aşağıda iki sınıf dosyasından “UyariYap.as” dosyasında istenilen olay
public static const UYARI_ILETISI:String = "SigarayaHayır";komut satırı ile oluşturuluyor. Oluşturulmak istenilen olayın ismi sabitler(constants) ile tanımlanmaktadır. Sabitlere isim verirken tüm karakterlerin büyük harflerle ifade edilmesi yerinde olacaktır. İki farklı sözcük ile ifade edilecekse sabit ismi arada alt çizgi () kullanılmalıdır. UYARIILETISI buradaki örnekte oluşturulan olayın adıdır. UyariYap adlı olay sınıfı içinde olay adı belirtildikten sonra, olayın dağıtımını sağlayacak fonksiyon oluşturulmalıdır. Uyari() fonksiyonu çağrıldığında
dispatchEvent(new Event(UyariYap.UYARI_ILETISI));komut satırı ile oluşturulan olay dağıtılacaktır. “Ilet.as” sınıf dosyasında ise; artık oluşturulan olay, bir olay dinleyiciye kaydedilmelidir. Bunun için önce olay sınıfından bir olay nesnesi oluşturulmalıdır.
var ilet:UyariYap= new UyariYap();Olay nesnesi oluşturulduktan sonra addEventListener() metodu ile olay dinleyicisine kaydedilir.
ilet.addEventListener(UyariYap.UYARI_ILETISI, iletiListener);Olay dinleyicine kayıtlı olay türü (UyariYap.UYARI_ILETISI) ile olay nesnesindeki dispatchEvent() metodundaki olay türü aynıdır.
package
{
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class UyariYap extends EventDispatcher
{
public static const UYARI_ILETISI:String = "SigarayaHayır";
public function UyariYap()
{
var zamanlayici:Timer = new Timer(1000, 1);
zamanlayici.addEventListener(TimerEvent.TIMER, zamanlayiciListener);
zamanlayici.start( );
function zamanlayiciListener(e:TimerEvent):void
{
uyari();
}
}
private function uyari():void
{
dispatchEvent(new Event(UyariYap.UYARI_ILETISI));
}
}
}
package
{
import flash.display.*;
import flash.events.*;
public class Ilet extends Sprite
{
public function Ilet()
{
var ilet:UyariYap= new UyariYap();
ilet.addEventListener(UyariYap.UYARI_ILETISI, iletiListener);
}
private function iletiListener(e:Event):void
{
trace("Sigara Sağlığa Zararlıdır!");
}
}
}Yazan: Muttalip TULGAR ActionScript 3.0 Olaylar dersleri sona ermiştir. Başka derslerde görüşmek üzere…