Flash CS3 Label Component


Bu bölümde label componente harici bir txt dosyasından veri yüklemeyi göreceksiniz. Veriye atanmış olan html tagları ile yüklenen metnin stilini de düzenleyebileceksiniz.

DOSYAYI İNDİR

 

Uygulama:

1- Flash programını açıp components panelinden (panel açık değilse Ctrl+F7 tuşuna basarak açabilirsiniz) bir label bileşenini sahneye sürükleyip bırakın.

2- Sahnedeki bu componenti seçip properties panelinden _label ismini atayın. Şimdi verilerin yükleneceği txt dosyasını oluşturalım.veriler.txt adını verdiğimiz txt dosyasına ilgili html taglarını ve metni yazıp UTF 8 formatında (Türkçe karakter içeriyorsa) kaydedelim.Txt dosyası ile swf dosyasının aynı dizinde olmasına dikkat edin. Şimdi alttaki kodları yazarak önce fla dosyasını txt dosyasının bulunduğu dizine kaydedip test ediniz.Fla dosyasını kaydetmeden filmi test ederseniz txt dosyası yüklenmez.

text dosyasının içeriği:

<b>........................Birinci paragraf ....................................</b>
<font color='#ff0000'> ..........................İkinci paragraf...................................... </font>

şeklindedir.

 

var url:String = "veriler.txt";
_label.text="Veriler yükleniyor"
_label.autoSize = TextFieldAutoSize.LEFT;
_label.width = 530;
_label.move(10, 10);
_label.wordWrap = true;
_label.selectable=false;

var yuklenen:URLLoader = new URLLoader();
yuklenen.addEventListener(Event.COMPLETE, veri_yukle);
yuklenen.load(new URLRequest(url));

function veri_yukle(olay:Event):void {
_label.htmlText = URLLoader(olay.currentTarget).data;
_label.condenseWhite=false;
}

Label componentte mümkün olan tüm kodlar kullanılarak çalışma hazırlanmaya çalışılmıştır.Şayet html özelliği kullanmayacaksanız daha sade kodlar kullanmak şansımız vardır. Kodların anlamları :

var url:String = "veriler.txt"; yüklenecek txt dosyasının yolunu gösteren bir değişken oluşturulmuştur.

_label.text="Veriler yükleniyor" Sahnedeki bileşen ilk açıldığında görülecek metindir.harici yüklemede aslında şart olan bir dizin değildir.Çünkü veri yüklendiğinde bu metin kaybolacaktır. Ama çok uzun bir metin yükleyecekseniz yükleme tamamlana kadar ki kısa bir süre için sahnede bu metin cümlesi görülecektir.

_label.autoSize = TextFieldAutoSize.LEFT; Metin yüklendiğinde metin kutusunun ne tarafa yeniden boyutlandırılacağını gösterir. LEFT: Metin kutusunu sağa ve aşağı yönde , RIGHT: Sola ve aşağıya , CENTER: Sola ve sağa doğru yeniden boyutlar. NONE: Bu seçenekte metni bileşene yüklemek için sığdırma ve yeniden boyutlandırma yapmaz.

_label.width = 530; Yüklenen metnin yer kaplayacağı genişlik pixel olarak yazılır.

_label.move(10, 10); Yüklenen metnin x ve y koordinasyonu oluşturulur.

_label.wordWrap = true; Varsayılan değeri false olduğundan birden fazla satır içeren metin varsa yazmalısınız.

_label.selectable=false; varsayılan değer false şeklindedir.Şayet yazdığınız metnin fare ile seçilebilir olmasını istiyorsanız true yazmalısınız.False yazılımı veya bu dizinin yazılmaması ilgili metnin seçilmesini engeller.

var yuklenen:URLLoader = new URLLoader();
yuklenen.addEventListener(Event.COMPLETE, veri_yukle);
yuklenen.load(new URLRequest(url));
Bir url den veri yüklemek için gereken klasik kod grubu budur.loadVariables` den ne kadar farklı olduğunu görüyorsunuz. Buarada çalışacak olan fonksiyon aşağıdadır.

function veri_yukle(olay:Event):void {
_label.htmlText = URLLoader(olay.currentTarget).data;
_label.condenseWhite=false;
}

İlk dizine artık alışmış olmalısınız.

_label.htmlText = URLLoader(olay.currentTarget).data; belirtilen URL den yine belirtilmiş olan txt dosyasına ait veriler html özelliği kullanılarak yüklenmektedir.

_label.condenseWhite=false; Bu dizin sadece html özelliği aktif olduğunda çalışır.Yüklenen metindeki boşluklar varsa false seçimi bu boşlukların korunmasını sağlar. Varsayılan değerde false olduğundan ancak ture olmasını istediğinizde yazmalısınız.True olduğunda kelime aralarındaki boşluk hariç tüm boşluklar kaybolur.

Şayet amacınız basitçe bir metni yüklemek ise en son yazılan fonksiyonu alttaki gibi değiştirmelisiniz.

function veri_yukle(olay:Event):void {
_label.text = URLLoader(olay.currentTarget).data;
}