If Frame Is Loaded komutu Flash ile kronometre (saat) yapımı

Nis 13

Bazı durumlarda sayfanıza koyacağınız metinsel içerik sayfanızın tasarımında ayırdığınız boşluktan daha fazla yer kaplar. Bu durumda ya içeriğinizi farklı sayıdaki adımlara bölmeniz ya da kaydırılabilir metinler halinde sunmanız gerekir. Klasik HTML sayfaları ve frame’ler için, uzun metinler sorun değildir. Zira HTML tarayıcıları öntanı
mlı (varsayılan) olarak gereken boyutlarda bir kaydırma çubuğunu sayfanın yanına veya altına yerleştiriverir.
Ancak şash için durum (en azından şimdilik) böyle değildir.
Flash’ta kaydırılabilir metin kurgusu oluşturmak için temelde iki yöntem mevcuttur. Birincisi maskelemeyi kullanarak içerikleri bir katmana yerleştirmek, katmanı zaman çubuğunu ya da ActionScript kullanarak kaydırmak ki bunun için metninizin uzunluğunu bilmeniz ya da ölçmeniz gerekir. Harici dosyalardan yüklenecek içerikler için bu seçenek biraz kullanışsızdır. Çünkü dinamik içeriklerin boyutları değişkenlik gösterebilirler, bu bakımdan metinlerin ne kadar uzun olacağını çoğu zaman bilemezsiniz.İkinci ve bu atölyemizde başvuracağımız yöntem olan “Çok satırlı metin alanı” ise dinamik içeriklerde kullanıma daha uygun bir seçenektir. Bu yöntemin bir başka avantajı ise şash içinde görünecek olan metinlerin diğer şash yazıları gibi antialias olmayıp daha keskin ve okunaklı görünmeleridir. Bu yöntemin dezavantaj olarak sayılabilecek özellikleri ise metnin
piksel piksel yerine satır satır kayması ve her seferinde satırı kaydırmak için yukarı ya da aşağı ok işaretine tıklamayı gerektirmesidir. Ancak bu tıklama işlemine kullanacağımız döngü movie clip’leriyle bir çözüm bulacağız.
Şimdi uygulamamıza geçelim. Uygulamamıza başlamak için

Flash programınızda boş bir sayfa açın.
1) Sayfanızda iken menüdeki Insert / New Symbol’dan yeni bir sembol oluşturun, movie clip seçeneğini işaretleyin ve isim verin.
2) Oluşturmuş olduğunuz movie clip’in içine metin aracını seçerek dilediğiniz ölçülerde bir metin alanı oluşturun. Properties panelinden metin tipini dynamic text olarak seçin. Metin alanınızın etrafını çizgilerle çevirmek istiyorsanız yine bu panelde bulunan Show border around text düğmesini seçin. Line type alanında Multiline seçeneğini işaretleyin. Variable (değişken) alanına ise “icerik” ifadesini girip [Enter] tuşuna basın. Instance name alanını “hariciIcerik” olarak girin ve Enter tuşuna basın. Bu andan itibaren metin alanınızın ActionScript nezdinde ismi “hariciIcerik” olacaktır. Alanınıza dilerseniz statik metin bilgileri girebilirsiniz.

3) Insert / New Symbol’dan yeni bir sembol daha oluşturun, movie clip seçeneğini işaretleyin ve Dongu1 ismini verin.
4) Dongu1 movieclip’inizi açın, karıştırmamak için içine bir yazı (mesela ismini) yazın. Clip’inizin içine 3 adet frame ekleyin ve bunların her birine birer adet keyframe ekleyin.İlk frame’iniz seçiliyken Action paneline
stop();
Kodunu girin.
İkinci frame’iniz seçiliyken Action paneline
_root.ins.hariciIcerik.scroll = _root.ins. hariciIcerik.scroll + 1;
Kodunu girin.
Üçüncü frame’iniz seçiliyken Action paneline
gotoAndPlay(2);
Kodunu girin.
Library panelinde [CTRL]+[L] Dongu1 sembolünüzün üzerine sağ
tıklayın ve Duplicate seçeneğiyle clip’inizi kopyalayın. Adını Dongu2
olarak değiştirin.

Dongu2 movie clip’inizi aç›n ve içindeki yaz›y› Döngü 2 olarak değiştirin.
İlk frame’iniz seçiliyken Action paneline
stop();
Kodunu girin.
İkinci frame’iniz seçiliyken Action paneline
_root.ins.hariciIcerik.scroll = _root.ins.hariciIcerik.scroll - 1;
Kodunu girin.
Üçüncü frame’iniz seçiliyken Action paneline
gotoAndPlay(2);
Kodunu girin.
Henüz boş olan film sahnenize dönün ve önce Library penceresinden Tekst Alanı clip’inizi sahneye sürükleyin. Sürüklediğiniz örnek seçiliyken Properties paneline Instance name olarak “ins” yazın ve [Enter] tuşuna basın.

Film sahnenizde görünür alanın dışında kalan kısma Library penceresinden Dongu1 clibinizi sürükleyin. Sürüklediğiniz örnek seçiliyken Properties paneline Instance name olarak “dongu” yazın ve [Enter] tuşuna basın. Aynı şekilde film sahnenizde görünür alanın dışında kalan kısma Library penceresinden Dongu2 clibinizi sürükleyin. Sürüklediğiniz
örnek seçiliyken Properties paneline Instance name olarak “dongu2” yazın ve [Enter] tuşuna basın.
Sahnenizde dilediğiniz yere yukarı bakan bir ok çizin. Seçiliyken Insert / Convert to Symbol ile sembole çevirin ve Button seçeneğini işaretleyin.
Butonunuz seçiliyken Action paneline
on (rollOver) {
dongu2.gotoAndPlay(2);
}
on (rollOut) {
dongu2.stop();
}

kodlarını yazın
Aynı şekilde sahnenizde dilediğiniz yere aşağı bakan bir ok çizin. Seçiliyken Insert / Convert to Symbol ile sembole çevirin ve Button seçeneğini işaretleyin. Butonunuz seçiliyken Action paneline
on (rollOver) {
dongu.gotoAndPlay(2);
}
on (rollOut) {
dongu.stop();
}

kodlarını yazın.

Şimdi tekst alanımız için harici dosyadan içerik okutturmasını
görelim
Film sahnenizin ilk frame’ini seçin ve Action panelindeki alana
ins.loadVariables(”metin.txt”);
kodlarını girin.
şash filminizin bulunduğu klasöre “metin.txt” isminde bir metin
dosyası oluşturun. Encoding seçeneğini UTF-8 olarak belirleyin.
Dosyanızın en başına &icerik= ifadesini yazın, bundan sonra ise
yüklenecek metninizi ekleyin. Örneğin:
&icerik=Autem magna in suscipit accumsan consequat hendrerit nullap
dolore vesaire vesaire . . .
Dosyanızı kaydedin ve kapatın.
şash filminizi File / Publish ile yayınlayın. Klasörünüzde oluşacak HTML sayfasını açın
Nasıl Çalışıyor?
Bu ayki atölyemizde yer alan uygulamamızla oldukça önemli flash ActionScript deneyimlerini edinmiş olacağınızı umuyorum. Aslında hiçbir şey bilmek zorunda olmadan da örneğimizi kopyalayıp, dilediğiniz görsel değişiklikleri yaparak kullanabilirsiniz ama nasıl çalıştığını merak edenlere bazı önemli noktaları açıklayalım.
İçinde, ins referans isimli Movie Clip’imiz ise sahnemizde. Bu isimler şash filmindeki hiyerarşiyi kullanarak dilenen nesneye ve o nesnenin özelliklerine ulaşmak için kullanılmakta.
_root.ins.hariciIcerik.scroll = _root.ins.hariciIcerik.scroll - 1;
_root ActionScript’te ana sahne seviyesini ifade etmekte kullanılıyor.
Filmimiz aslında tek bir frame’den oluşuyor ve bu frame de yüklenir yüklenmez harici içeriğimiz metin dosyasından okunarak yükleniyor.
Metin dosyamızın adı ve bulunduğu yer önemli, zira bunu ActionScript’te
kullanıyoruz
ins.loadVariables(”metin.txt”);
Bu ifadenin anlamı metin.txt dosyasındaki değişken değerlerinin okunup metin alanını ihtiva eden Movie clip’e yüklenmesi.
metin.txt dosyasında bulunan bütün içerik tek bir değişkenin değeri o da icerik. Metin alanımıza ait olan Var (değişken) alanının adının da icerik olduğuna dikkat edin. Bu durumda metinden gelen değişken değeri flash’taki aynı isimli değişkenin değerinin yerini almakta.
Bir önemli nokta da metin.txt dosyasını ANSI olarak değil deUTF-8 ya da Unicode olarak kaydetmeniz. Aksi durumda Türkçe karakterleri göremeyebilirsiniz.
Peki içeriğimiz nasıl kayıyor? İçeriğimiz yüklendikten sonra diyelimki aşağı ok tuşunun üzerine geldik. Bu durumda bu düğmemize ait olan ActionScript tetiklenecektir.
dongu.gotoAndPlay(2);
Bu da dongu isimli Movie Clip’imizin 2. frame’e gidip oynamaya başlaması demek. Farkederseniz bu Movie Clip’imizin 3. frame’i de tekrardan 2. frame’e göndermekte, böylece bir döngü oluşmakta. Döngümüzün yaptığı şey ise her bir adımda (ki bu 2. frame’e ilişkilendirilmiş ActionScript ile oluşuyor) metin alanı içindeki metni bir satır aşağı kaydırmak.
_root.ins.hariciIcerik.scroll =_root.ins.hariciIcerik.scroll + 1;
Düğmenin üzerinde ayrıldığımız anda ise döngümüz sona eriyor.
on (rollOut) {
dongu.stop();
}

İşlem yukarı düğmesi için de tam tersi olarak aynen gerçekleşiyor. Bu şekilde sadece düğmenin üzerine gelmekle metnimizi adım adım kaydırabiliyoruz. Döngünüzdeki frame’lerin adedini arttırarak kayma işlemini yavaşlatmanı
z mümkün.

Numan Pekgöz
numanpekgoz@chip.com.tr

One Response to “Kaydırılabilir metinler (scroll bar)”

  1. ABDULLAH KOCOGLU Says:

    Sizden rica etsem bana kaydırma cubugu ornegi gondermeniz mumkun mu acaba. Bakarak yapmam daha kolay olacak sanırım. Böylesine bir hizmet verdiğiniz için teşekkür eder, saygılarımı sunarım…

Bu yazıya yorum ekleyebilirsiniz

flash dersleri flash oyunlar download