Bu bölümde dinamik metin kutusuna eklenen scrollbar bileşenine harici bir txt dosyasından html özelliğini koruyarak metin yükleme işlemini göreceksiniz.çalışmayı mümkün olduğu kadar kodlarla değil manuel olarak yapmaya çalışacağız.
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','225','height','150','title','scrollBar Component','src','cs3_scrollbar','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','cs3_scrollbar' ); //end AC code
DOSYAYI İNDİR Uygulama: 1- Flash programını açıp sahneye yeterli genişlikte bir dinamik metin kutusu çizin. Properties panelinden kutu ismini verin. Alttaki resimde görüldüğü gibi multiline özelliğini açın ve border alanını tıklayarak metin kutusunda bir çerçeve gözlenmesini sağlayın.
2- Component panelini açın ve bir scrollbar bileşenini fare ile tutarak sürükleyin ve dinamik metin kutusu içine bırakın.Barın hemen sağ kenara otomatik yapıştığını göreceksiniz. Sahnedeki barı tek tıklama ile seçin ve properties panelinden ismini bar olarak yazın.Proeprties panelinin hemen yanında parameters paneline tıklayın.
scrollTargetname alanına bakarsanız dinamik metin kutusunun ismi olan kutu ile otomatik ilişkilendiğini görürsünüz.Direction kısmı scrollbar bileşeninin vertikal oluşmasını sağlar.
3- Ana sahnedeki 1.kareyi seçip actionscript panelini açıp şu kodları yazın.
var link:URLLoader = new URLLoader();
link.addEventListener(Event.COMPLETE, yukle);
link.load(new URLRequest("veriler.txt"));
function yukle(event:Event):void {
var metin:String = event.currentTarget.data;
kutu.htmlText = metin;
bar.update();
}
Veriler.txt dosyası ile swf dosyasını aynı dizinde tutmak kaydı ile filmi test edebilirsiniz.
Açıklama:
var link:URLLoader = new URLLoader();
link.addEventListener(Event.COMPLETE, yukle);
link.load(new URLRequest("veriler.txt"));
Üstteki kod grubu eski loadvars nesnesi kullanımının actionscript3 dilindeki yazlımıdır. Yani bir linkten veri yüklemek isterseniz önceden kullandığınız loadvariables,loadvars nesnesi kod grubu yerine üstteki klasik kodları kullanmak durumundasınız.
var link:URLLoader = new URLLoader(); Önce link isimli bir değişkene yükleme yapacağı özellikleri atarsınız.
link.load(new URLRequest("veriler.txt")); linke nereden verileri yükleyeceğinizi belirtirsiniz.Bu bizim yaptığımız gibi göreceli yok şeklinde olabileceği gibi
http://www.domain.com/veriler.txt gibi mutlak bir yol da olabilir.
link.addEventListener(Event.COMPLETE, yukle); yükleme işlemi tamamlandığında yukle isimli bir fonksiyon çalıştırılır.
function yukle(event:Event):void {
var metin:String = event.currentTarget.data;
kutu.htmlText = metin;
bar.update();
}
İlk dizine bakarsak: var metin:String = event.currentTarget.data; Metin isimli bir değişken oluşturulur ve hedef yoldaki yani link değişkenine yüklenen veriler bir string olarak bu değişkene yüklenir. kutu.htmlText = metin; Bu string html özelliği korunarak kutu isimli dinamik metin kutusuna aktarılır.Şayet html özelliğini kullanmak istemiyorsanız
kutu.text = metin; şeklinde de kullanabilirsiniz. bar.update(); Bu önemli bir koddur.Veri yüklenmesi zaman gerektirdiği için kod okunur okunmaz tamamı yüklenemeyebilir.Bu nedenle veriler tam yüklenene kadar devamlı update komutu çalışır.
Üstteki çalışmanın aynısını tamamen dinamik yöntemle oluşturmak
1- Flash programını açın ve component panelinden sahneye bir scrollbar sürükleyip bırakın, sonra sahnedeki bu bileşeni silip sahneyi boşaltın.
2- Anasahnedeki 1.kareye şu kodları yazıp filmi test edin:
import fl.controls.UIScrollBar;
var kutu:TextField = new TextField();
kutu.wordWrap = true;
kutu.width = 160;
kutu.height = 120;
kutu.border = true;
kutu.x = 10;
kutu.y = 10;
addChild(kutu);
var bar:UIScrollBar = new UIScrollBar();
bar.scrollTarget = kutu;
bar.height = kutu.height;
bar.move(kutu.x + kutu.width, kutu.y);
addChild(bar);
var link:URLLoader = new URLLoader();
link.addEventListener(Event.COMPLETE, yukle);
link.load(new URLRequest("http://www.flashdersleri.com/html_dosyalar/flash_cs3_components/veriler.txt"));
function yukle(event:Event):void {
var metin:String = event.currentTarget.data;
kutu.htmlText = metin;
bar.update();
}