Statik metin yalnızca Flash Professional ile oluşturulur. ActionScript'i kullanarak programlama yoluyla statik metin oluşturamazsınız. Statik metin, metnin kısa olduğu ve değişmesinin (dinamik metnin değişebilmesi gibi) amaçlanmadığı durumlarda kullanışlıdır. Statik metni, Flash Professional'da Sahne Alanı üzerinde çizilmiş bir daire veya kare gibi bir grafik öğeye benzer bir öğe olarak düşünün. Statik metin dinamik metinden daha fazla sınırlamaya sahiptir, ancak ActionScript 3.0, StaticText sınıfını kullanarak statik metnin özellik değerlerini okumanıza izin verir. Statik metinden veri okumak için TextSnapshot sınıfını da kullanabilirsiniz.
StaticText sınıfıyla statik metin alanlarına erişme
Tipik olarak, Sahne Alanı'na yerleştirilmiş bir statik metin örneğiyle etkileşim kurmak için Flash Professional'ın Eylemler panelindeki flash.text.StaticText sınıfını kullanırsınız. Ayrıca, statik metin içeren bir SWF dosyasıyla etkileşim kuran ActionScript dosyalarıyla da çalışabilirsiniz. Her iki durumda da programlama yoluyla bir statik metin örneği oluşturamazsınız. Statik metin Flash Professional ile oluşturulur.
Varolan bir statik metin alanına başvuru oluşturmak için, görüntüleme listesindeki öğeleri yineleyin ve bir değişken atayın. Örneğin:
for (var i = 0; i < this.numChildren; i++) {
var displayitem:DisplayObject = this.getChildAt(i);
if (displayitem instanceof StaticText) {
trace("a static text field is item " + i + " on the display list");
var myFieldLabel:StaticText = StaticText(displayitem);
trace("and contains the text: " + myFieldLabel.text);
}
}
Bir statik metin alanına başvuru elde ettikten sonra, söz konusu alanın özelliklerini ActionScript 3.0'da kullanabilirsiniz. Aşağıdaki kod, Zaman Çizelgesi'ndeki bir kareye eklenmiştir ve
myFieldLabel
adlı bir değişkenin bir statik metin başvurusuna atandığını varsaymaktadır.
myField
adlı bir dinamik metin alanı,
myFieldLabel
öğesinin
x
ve
y
değerlerine göre konumlandırılmıştır ve
myFieldLabel
öğesinin değerini tekrar görüntüler.
var myField:TextField = new TextField();
addChild(myField);
myField.x = myFieldLabel.x;
myField.y = myFieldLabel.y + 20;
myField.autoSize = TextFieldAutoSize.LEFT;
myField.text = "and " + myFieldLabel.text
TextSnapshot sınıfını kullanma
Varolan bir statik metin alanı örneğiyle programlama yoluyla çalışmak istiyorsanız, bir flash.display.DisplayObjectContainer öğesinin
textSnapshot
özelliğiyle çalışmak üzere flash.text.TextSnapshot sınıfını kullanabilirsiniz. Başka bir deyişle,
DisplayObjectContainer.textSnapshot
özelliğinden bir TextSnapshot örneği oluşturursunuz. Böylece, statik metnin verilerini almak veya parçalarını seçmek için söz konusu örneğe yöntem uygulayabilirsiniz.
Örneğin, Sahne Alanı'na "TextSnapshot Example" metnini içeren bir statik metin alanı yerleştirin. Zaman Çizelgesi'nin Kare 1'ine aşağıdaki ActionScript'i ekleyin:
var mySnap:TextSnapshot = this.textSnapshot;
var count:Number = mySnap.charCount;
mySnap.setSelected(0, 4, true);
mySnap.setSelected(1, 2, false);
var myText:String = mySnap.getSelectedText(false);
trace(myText);
TextSnapshot sınıfı, söz konusu metni uygulamanın başka bir bölümünde bir değer olarak kullanmak istiyorsanız, yüklü bir SWF dosyasındaki statik metin alanlarından metin almak için kullanışlıdır.
|
|
|