Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Olay hedefleri, Flash ® Player ve Adobe AIR olay modelinin önemli bir parçasıdır. Olay hedefi, görüntüleme listesi hiyerarşisinde olayların akış şekline yönelik odak noktası görevi görür. Fare tıklatma veya tuş basışı gibi bir olay oluştuğunda, görüntüleme listesinin kökünden olay akışına bir olay nesnesi gönderilir. Olay nesnesi, döngü şeklinde olay hedefine seyahat eder, bu kavramsal olarak üç aşamaya ayrılır: yakalama aşamasında kökten olay hedefinin düğümünden önceki son düğüme seyahat yer alır; hedef aşamasında yalnızca olay hedefi düğümü yer alır ve köpürme aşamasında görüntüleme listesinin köküne doğru dönüş hareketinde karşılaşılan sonraki düğümler yer alır.
Genelde, user-defined sınıf için en basit yol, EventDispatcher'ı genişletmek üzere olay gönderme yetenekleri kazanmaktır. Bu mümkün değilse (yani sınıf zaten başka bir sınıfa genişletiliyorsa), bunun yerine IEventDispatcher arabirimini uygulayabilir, bir EventDispatcher üyesi oluşturabilir ve çağrıları toplu EventDispatcher'a yönlendirmek için basit kancalar yazabilirsiniz.
Yöntem | Tanımlayan: | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
EventDispatcher nesnesi olan bir olay dinleyici nesnesini, dinleyicinin bir olayın bildirimini alması için kaydeder. | IEventDispatcher | ||
Olay akışına bir olay gönderir. | IEventDispatcher | ||
EventDispatcher nesnesinin belirli bir olay türü için kayıtlı dinleyicisi olup olmadığını kontrol eder. | IEventDispatcher | ||
EventDispatcher nesnesinden bir dinleyiciyi kaldırır. | IEventDispatcher | ||
Bir olay dinleyicisinin bu EventDispatcher nesnesiyle mi, yoksa onun belirtilen olay türüne yönelik üst öğelerinden biriyle mi kayıtlı olduğunu kontrol eder. | IEventDispatcher |
addEventListener | () | yöntem |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
EventDispatcher nesnesi olan bir olay dinleyici nesnesini, dinleyicinin bir olayın bildirimini alması için kaydeder. Belirli türde bir olay, aşama ve öncelik için görüntüleme listesindeki tüm düğümlere olay dinleyicilerini kaydedebilirsiniz.
Bir olay dinleyicisini başarıyla kaydettikten sonra, addEventListener()
öğesine ek çağrılar yaparak önceliğini değiştiremezsiniz. Bir dinleyicinin önceliğini değiştirmek için, ilk olarak removeEventListener()
öğesini çağırmanız gerekir. Daha sonra dinleyiciyi yeni öncelik seviyesiyle kaydedebilirsiniz.
Dinleyici kaydedildikten sonra, farklı bir type
veya useCapture
değeriyle addEventListener()
öğesine yapılan çağrılar, ayrı bir dinleyici kaydının oluşturulmasıyla sonuçlanır. Örneğin ilk olarak useCapture
true
değerine ayarlanmış durumdayken bir dinleyiciyi kaydederseniz, dinleyici yalnızca yakalama aşaması boyunca dinleme işlemi yapar. Aynı listener nesnesini kullanarak, ancak useCapture
false
değerine ayarlanmış durumdayken tekrar addEventListener()
öğesini çağırırsanız, iki ayrı dinleyiciniz olur: bunlardan biri yakalama aşamasında dinleme işlemi yapar, diğeri ise hedef ve köpürme aşamasında dinleme işlemi yapar.
Yalnızca hedef aşaması veya köpürme aşaması için bir olay dinleyicisini kaydedemezsiniz. Köpürme yalnızca hedef düğümün alt öğeleri için geçerli olduğundan, bu aşamalar kayıt sırasında birleştirilir.
Artık bir olay dinleyicisine ihtiyacınız olmadığında, EventDispatcher.removeEventListener()
öğesini çağırarak olay dinleyicisini kaldırın, aksi takdirde bellek sorunları oluşabilir. Çöp toplayıcı, başvuruları olan nesneleri çıkarmadığından, kayıtlı olay dinleyicileri olan nesneler bellekten otomatik olarak kaldırılmaz.
Bir EventDispatcher örneği kopyalandığında, o örneğe ekli olan olay dinleyicileri kopyalanmaz. (Yeni oluşturulmuş düğümünüz için bir olay dinleyicisi gerekiyorsa, düğümü oluşturduktan sonra dinleyiciyi eklemeniz gerekir.) Ancak bir EventDispatcher örneğini taşırsanız, örneğe ekli olan olay dinleyicileri de onunla birlikte taşınır.
Bir olay düğümde işlenirken olay dinleyicisi o düğüme kaydediliyorsa, geçerli aşama sırasında olay dinleyicisi tetiklenmez ancak olay akışındaki köpürme aşaması gibi sonraki bir aşamada tetiklenebilir.
Bir olay düğümde işlenirken olay dinleyicisi o düğümden kaldırılırsa, geçerli eylemler tetiklenmeye devam eder. Olay dinleyicisi kaldırıldıktan sonra asla tekrar çağrılmaz (ileride işlenmek üzere tekrar kaydedilmediği sürece).
Parametreler
type:String — Olay türü.
| |
listener:Function — Olayı işleyen dinleyici işlevi. İşlev, olay nesnesini tek parametresi olarak kabul etmeli ve örnekte gösterildiği gibi hiçbir şey döndürmemelidir:
| |
useCapture:Boolean (default = false ) — Dinleyicinin yakalama aşamasında mı, yoksa hedef ve köpürme aşamalarında mı çalıştığını belirler. useCapture , true olarak ayarlanırsa dinleyici, olayı hedef veya köpürme aşamasında değil de yalnızca yakalama aşamasında işler. useCapture false değerindeyse dinleyici, olayı yalnızca hedef veya köpürme aşamasında işler. Olayı üç aşamada da dinlemek için addEventListener() öğesini iki kez, biri useCapture true değerine ayarlanmış olarak, diğeri de useCapture false değerine ayarlanmış olarak çağırın.
| |
priority:int (default = 0 ) — Olay dinleyicisinin öncelik düzeyi. Öncelikler 32 bit tam sayıyla atanır. Sayı ne kadar yüksekse, öncelik de o kadar yüksek olur. n önceliğine sahip tüm dinleyiciler, n-1 önceliği dinleyicilerinden önce işlenir. İki veya daha fazla dinleyici aynı önceliği paylaşırsa, eklendikleri sıraya göre işlenirler. Varsayılan öncelik 0'dır.
| |
useWeakReference:Boolean (default = false ) — Dinleyici başvurusunun güçlü mü, yoksa zayıf mı olduğunu belirler. Güçlü bir başvuru (varsayılan), dinleyicinizin çöp toplama işlemine tabi tutulmasını önler. Zayıf bir başvuru, bu işlevi yapmaz. Sınıf düzeyi üye işlevleri, çöp toplama işlemine tabi değildir. Böylece onları çöp toplama işlemine tabi tutmadan, sınıf düzeyi üye işlevleri için |
dispatchEvent | () | yöntem |
public function dispatchEvent(event:Event):Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Olay akışına bir olay gönderir. Olay hedefi, dispatchEvent()
öğesinin çağrıldığı EventDispatcher nesnesidir.
Parametreler
event:Event — Olay akışına gönderilen olay nesnesi.
|
Boolean — Olayda preventDefault() çağrılmazsa true değeri, çağrılırsa false değeri.
|
hasEventListener | () | yöntem |
public function hasEventListener(type:String):Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
EventDispatcher nesnesinin belirli bir olay türü için kayıtlı dinleyicisi olup olmadığını kontrol eder. Bu, EventDispatcher nesnesinin olay akışı hiyerarşisindeki bir event türünün işlenmesini nerede değiştirdiğini belirlemenize izin verir. Belirli türde bir olayın olay dinleyicisini gerçekten tetikleyip tetiklemeyeceğini belirlemek için IEventDispatcher.willTrigger()
öğesini kullanın.
hasEventListener()
ile willTrigger()
arasındaki fark, hasEventListener()
öğesi yalnızca ait olduğu nesneyi incelerken willTrigger()
öğesinin type
parametresi ile belirtilen olayın tüm olay akışını incelemesidir.
Parametreler
type:String — Olay türü.
|
Boolean — Belirtilen türde bir dinleyici kayıtlıysa, true değeri; kayıtlı değilse, false değeri.
|
İlgili API Öğeleri
removeEventListener | () | yöntem |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
EventDispatcher nesnesinden bir dinleyiciyi kaldırır. EventDispatcher nesnesiyle kayıtlı eşlenen bir dinleyici yoksa, bu yönteme yapılan çağrının herhangi bir etkisi yoktur.
Parametreler
type:String — Olay türü.
| |
listener:Function — Kaldırılacak dinleyici nesnesi.
| |
useCapture:Boolean (default = false ) — Dinleyicinin yakalama aşaması için mi yoksa hedef ve köpürme aşamaları için mi kaydedildiğini belirtir. Dinleyici, hem yakalama aşaması hem de hedef ve köpürme aşamaları için kaydedildiyse, ikisini de kaldırmak için removeEventListener() öğesine yapılan iki çağrı gereklidir: çağrılardan birinde useCapture true değerine ve diğerinde useCapture false değerine ayarlanmıştır.
|
willTrigger | () | yöntem |
public function willTrigger(type:String):Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bir olay dinleyicisinin bu EventDispatcher nesnesiyle mi, yoksa onun belirtilen olay türüne yönelik üst öğelerinden biriyle mi kayıtlı olduğunu kontrol eder. Belirtilen türde bir olay bu EventDispatcher nesnesine veya herhangi bir alt öğesine gönderildiğinde olay akışının herhangi bir aşamasında bir olay dinleyicisi tetiklenirse, bu yöntem true
döndürür.
hasEventListener()
ile willTrigger()
arasındaki fark, hasEventListener()
öğesi yalnızca ait olduğu nesneyi incelerken willTrigger()
öğesinin type
parametresi ile belirtilen olayın tüm olay akışını incelemesidir.
Parametreler
type:String — Olay türü.
|
Boolean — Belirtilen türde bir dinleyici tetiklenecekse, true değeri; tetiklenmeyecekse, false değeri.
|
decorDispatcher
adında) yapılır ve doSomething
özel olayıyla addEventListener()
öğesini çağırmak için decorDispatcher
değişkeni kullanılır, bu daha sonra trace()
kullanarak metin satırı yazdıran didSomething()
tarafından işlenir.
package { import flash.events.Event; import flash.display.Sprite; public class IEventDispatcherExample extends Sprite { public function IEventDispatcherExample() { var decorDispatcher:DecoratedDispatcher = new DecoratedDispatcher(); decorDispatcher.addEventListener("doSomething", didSomething); decorDispatcher.dispatchEvent(new Event("doSomething")); } public function didSomething(evt:Event):void { trace(">> didSomething"); } } } import flash.events.IEventDispatcher; import flash.events.EventDispatcher; import flash.events.Event; class DecoratedDispatcher implements IEventDispatcher { private var dispatcher:EventDispatcher; public function DecoratedDispatcher() { dispatcher = new EventDispatcher(this); } public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void{ dispatcher.addEventListener(type, listener, useCapture, priority); } public function dispatchEvent(evt:Event):Boolean{ return dispatcher.dispatchEvent(evt); } public function hasEventListener(type:String):Boolean{ return dispatcher.hasEventListener(type); } public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void{ dispatcher.removeEventListener(type, listener, useCapture); } public function willTrigger(type:String):Boolean { return dispatcher.willTrigger(type); } }
Tue Jun 12 2018, 01:09 PM Z