Statik metinle çalışma

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

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.