|
Tüm ActionScript 3.0 bileşenleri, DisplayObject sınıfından miras alır ve böylece görüntüleme listesiyle etkileşim kurmak için bu sınıfın yöntem ve özelliklerine erişir.
Görüntüleme listesi
, bir uygulamada görüntülenen nesnelerin ve görsel öğelerin hiyerarşisidir. Bu hiyerarşi şu öğeleri içerir:
-
Üst düzey kap olan Sahne Alanı
-
Arasında şekiller, MovieClip öğeleri, metin alanları, vb'nin yer aldığı görüntüleme nesneleri
-
Alt görüntüleme nesnelerini içerebilen özel görüntüleme nesneleri niteliğindeki görüntüleme nesnesi kapları.
Görüntüleme listesindeki nesnelerin sırası, bu öğelerin üst öğe kabındaki derinliklerini belirler. Bir nesnenin derinliği, o nesnenin Sahne Alanı'nda ya da görüntüleme kabında yukarıdan aşağıya veya önden arkaya konumunu ifade eder. Derinlik sırası, nesne örtüştüğünde belirgin olur ancak örtüşmediğinde de vardır. Görüntüleme listesindeki her nesne, Sahne Alanı'nda karşılık gelen bir derinliğe sahiptir. Nesneyi diğer nesnelerin önüne veya arkasına yerleştirerek bir nesnenin derinliğini değiştirmek istiyorsanız, nesnenin konumunu görüntüleme listesinde değiştirmeniz gerekir. Görüntüleme listesindeki nesnelerin varsayılan sıralaması, Sahne Alanı'na yerleştirildikleri sıradır. Görüntüleme listesindeki 0 konumu, derinlik sıralamasında en altta yer alan nesnedir.
Görüntüleme listesine bileşen ekleme
Kabın
addChild()
veya
addChildAt()
yöntemini çağırarak DisplayObjectContainer nesnesine bir nesne ekleyebilirsiniz. Sahne Alanı olması durumunda, geliştirme sırasında nesne oluşturarak veya bileşenler olması durumunda, nesneyi Bileşenler panelinden Sahne Alanı'na sürükleyerek görüntüleme listesine bir nesne ekleyebilirsiniz. ActionScript ile kaba bir nesne eklemek için öncelikle
new
operatörüyle örneğin yapıcısını çağırarak bir örnek oluşturun ve sonra bu örneği Sahne Alanı'na ve görüntüleme listesine yerleştirmek için
addChild()
ya da
addChildAt()
yöntemini çağırın.
addChild()
yöntemi, nesneyi görüntüleme listesindeki bir sonraki konuma yerleştirirken,
addChildAt()
yöntemi de nesnenin ekleneceği konumu belirtir. Önceden doldurulmuş bir konum belirtirseniz, o konumdaki nesne ve daha yüksek konumlardaki nesneler 1 düzey yukarı taşınır. DisplayObjectContainer nesnesinin
numChildren
özelliği, nesnenin içerdiği görüntüleme nesnelerinin sayısını içerir.
getChildAt()
yöntemini çağırıp konumu belirterek veya nesnenin adını biliyorsanız,
getChildByName()
yöntemini çağırarak görüntüleme listesinden bir nesne alabilirsiniz.
Not:
Görüntüleme listesinde bileşene adıyla erişmek istiyorsanız, ActionScript ile bileşeni eklediğinizde, bileşenin ad özelliğine bir ad atamanız gerekir.
Aşağıdaki örnek, görüntüleme listesinde üç bileşenin adını ve konumunu görüntüler. İlk olarak, bir NumericStepper, bir Button ve bir ComboBox öğesini birbiriyle örtüşecek şekilde Sahne Alanı'na sürükleyin ve bunlara
aNs
,
aButton
ve
aCb
örnek adlarını verin. Daha sonra Zaman Çizelgesi'nin Kare 1 öğesindeki Eylemler paneline şu kodu ekleyin:
var i:int = 0;
while(i < numChildren) {
trace(getChildAt(i).name + " is at position: " + i++);
}
Çıktı panelinde şu satırları görmeniz gerekir:
aNs is at position: 0
aButton is at position: 1
aCb is at position: 2
Görüntüleme listesinde bileşeni taşıma
addChildAt()
yöntemini çağırıp bir nesne adı ve nesneyi yerleştirmek istediğiniz konumu yöntemin parametreleri olarak sağlayarak o nesnenin görüntüleme listesindeki konumunu ve görüntüleme derinliğini değiştirebilirsiniz. Örneğin, NumericStepper öğesini en üste yerleştirmek için bir önceki örneğe şu kodu ekleyin ve bileşenin görüntü listesindeki yeni konumlarını görüntülemek için döngüyü yineleyin:
this.addChildAt(aNs, numChildren - 1);
i = 0;
while(i < numChildren) {
trace(getChildAt(i).name + " is at position: " + i++);
}
Çıktı panelinde şunları görmeniz gerekir:
aNs is at position: 0
aButton is at position: 1
aCb is at position: 2
aButton is at position: 0
aCb is at position: 1
aNs is at position: 2
NumericStepper öğesinin de ekrandaki diğer bileşenlerin önünde görüntülenmesi gerekir.
Listedeki birinci konum 0 olsa da,
numChildren
öğesinin görüntüleme listesindeki nesnelerin sayısı (1 ile
n
arasında) olduğunu unutmayın. Bu nedenle, listede üç öğe varsa, üçüncü nesnenin dizin konumu 2 olur. Başka bir deyişle, görüntüleme derinliği için görüntüleme listesindeki son konuma veya en üst nesneye
numChildren - 1
olarak başvurabilirsiniz.
Görüntüleme listesinden bileşeni kaldırma
removeChild()
ve
removeChildAt()
yöntemleriyle görüntüleme nesnesi kabından ve görüntüleme listesinden bir bileşeni kaldırabilirsiniz. Aşağıdaki örnek, Sahne Alanı'nda birbirinin önüne üç Button bileşeni yerleştirir ve bunların her biri için bir olay dinleyicisi ekler. Her bir Button öğesini tıklattığınızda, olay işleyici o Button öğesini görüntüleme listesinden ve Sahne Alanı'ndan kaldırır.
-
Yeni bir Flash dosyası (ActionScript 3.0) belgesi oluşturun.
-
Button öğesini Bileşenler panelinden Kütüphane paneline sürükleyin.
-
Eylemler panelini açın, ana Zaman Çizelgesi'nde Kare 1'i seçin ve şu kodu ekleyin:
import fl.controls.Button;
var i:int = 0;
while(i++ < 3) {
makeButton(i);
}
function removeButton(event:MouseEvent):void {
removeChildAt(numChildren -1);
}
function makeButton(num) {
var aButton:Button = new Button();
aButton.name = "Button" + num;
aButton.label = aButton.name;
aButton.move(200, 200);
addChild(aButton);
aButton.addEventListener(MouseEvent.CLICK, removeButton);
}
Görüntüleme listesinin tam açıklaması için, bkz. “Görüntü programlama”,
ActionScript 3.0'ı Programlama
.
|
|
|