Olayları işleme

Her bileşen, kullanıcı kendisiyle etkileşim kurduğunda olaylar yayınlar. Örneğin, kullanıcı bir Button bileşenini tıklattığında, bu bileşen bir MouseEvent.CLICK olayı gönderir ve kullanıcı List bileşeninde bir öğeyi seçtiğinde List bileşeni bir Event öğesi gönderir. CHANGE olayı. Ayrıca UILoader örneği için içerik yüklemesi bittiğinde, Event.COMPLETE olayı oluştuğunda olduğu gibi, bir bileşende önemli bir şey olduğunda da olay gerçekleşebilir. Bir olayı işlemek için, olay gerçekleştiğinde çalıştırılan ActionScript kodu yazarsınız.

Bileşenin olayları arasında, bileşenin miras aldığı herhangi bir sınıfın olayları da yer alır. Başka bir deyişle, UIComponent sınıfı ActionScript 3.0 Kullanıcı Arabirimi bileşenlerinin taban sınıfı olduğundan, tüm ActionScript 3.0 Kullanıcı Arabirimi bileşenleri, UIComponent sınıfının olaylarını miras alır. Bir bileşenin yayınladığı olayların listesini görmek için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümünde bileşenin sınıf girişinin Olaylar bölümüne bakın.

ActionScript 3.0'da olay işlemenin tam açıklaması için, bkz. ActionScript 3.0'da Programlama .

Olay dinleyicileri hakkında

Aşağıdaki temel noktalar, ActionScript 3.0 bileşenleri için olay işlemesinde geçerlidir:

  • Tüm olaylar, bir bileşen sınıfının örneği tarafından yayınlanır. Bileşen örneği yayınlayıcıdır .

  • Bileşen örneği için addEventListener() yöntemini çağırarak bir olay dinleyicisi kaydedersiniz. Örneğin, şu kod satırı, aButton Button örneğine MouseEvent.CLICK olayı için bir dinleyici ekler:

    aButton.addEventListener(MouseEvent.CLICK, clickHandler);

    addEventListener() yönteminin ikinci parametresi, olay gerçekleştiğinde çağrılacak işlevin adını ( clickHandler ) kaydeder. Bu işlev, geri çağrı işlevi olarak da ifade edilir.

  • Tek bir bileşen örneğine birden çok dinleyici kaydedebilirsiniz.

    aButton.addEventListener(MouseEvent.CLICK, clickHandler1); 
    aButton.addEventListener(MouseEvent.CLICK, clickHandler2);
  • Birden çok bileşen örneğine tek bir dinleyici kaydedebilirsiniz.

    aButton.addEventListener(MouseEvent.CLICK, clickHandler1); 
    bButton.addEventListener(MouseEvent.CLICK, clickHandler1);
  • Olay işleyici işlevi, olay türü ve olayı yayınlayan örnek hakkında bilgi içeren bir olay nesnesine iletilir. Daha fazla bilgi için, bkz. Olay nesnesi hakkında .

  • Uygulama sona erinceye kadar veya siz removeEventListener() yöntemini kullanıp açıkça uygulamayı kaldırıncaya kadar dinleyici etkin olarak kalır. Örneğin, şu kod satırı, aButton öğesinde MouseEvent.CLICK olayı için dinleyiciyi kaldırır:

    aButton.removeEventListener(MouseEvent.CLICK, clickHandler);

Olay nesnesi hakkında

Olay nesnesi, Event nesnesi sınıfından miras alır ve olay hakkında önemli bilgiler sağlayan target ve type özellikleri dahil olmak üzere, gerçekleşen olay hakkında bilgi içeren özelliklere sahiptir:

Özellik

Açıklama

type

Olayın türünü belirten bir dize.

target

Olayı yayınlayan bileşen örneğinin başvurusu.

Bir olayın ek özellikleri olduğunda, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümünde olayın sınıf açıklamasında listelenirler.

Olay gerçekleştiğinde, olay nesnesi otomatik olarak oluşturulur ve olay işleyici işlevine iletilir.

Yayınlanan olayın adına veya olayı yayınlayan bileşenin örnek adına erişmek için, işlevin içinde olay nesnesini kullanabilirsiniz. Örnek adından diğer bileşen özelliklerine erişebilirsiniz. Örneğin, şu kod, aButton öğesinin label özelliğine erişmek ve bu özelliği Çıktı panelinde görüntülemek için, evtObj olay nesnesinin target özelliğini kullanır:

import fl.controls.Button; 
import flash.events.MouseEvent; 
 
var aButton:Button = new Button(); 
aButton.label = "Submit"; 
addChild(aButton); 
aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
 
function clickHandler(evtObj:MouseEvent){ 
trace("The " + evtObj.target.label + " button was clicked"); 
}