Flashda Resim Slayt
Alıntıdır:http://www.gnm6.com/tag/slide-show/
aşağıdaki kodu flash’a yapıştırın ve belirtilmiş şekilde bir XML dosyası oluşturun başka hiçbirşeye gerek yok…
flashı olmayanlara
swf yeterli XML’i de not defteri ile oluşturabilirsiniz
/*
Flash‘ta resim gosterisi yapmak her zaman canımı sıkmıştır.
Flash CS3′te bu ugras ıcın “Slideshow Template” yapmışlar ama o da çok farklı değılö yine sıkıcı bir sürü fare tıklaması.
Bu iş için daha basit daha hızlı bir çözüm yaratmak lazım diye düşündüm. Şu an yeni taşındığım evimde internet olmadığı için tek kaynağım da
Flash‘ın yardım dökümanı.
Aklımdakini anlatayim:
-Resimleri teker teker sahneye aktarıp birebir boyutlandırmak istemiyorum.
-Her resim için ayrı ayrı tween ile uğraşmakta istemiyorum.
-Resimlerle ilgili başlık vs. resimle beraber görünsün istiyorum.
Sonuç olarak tüm resimleri tek klasörde saklarım, resim listesini ve bilgileride bir
xml dosyasında saklarım diye bir çözüm düşündüm.
Ve o şekilde yaptım, kodlar biraz karışıktı düzenledim ve ne işe yaradığını anlattım.
İyi seyirler.
Sahneye hiçbirşey eklemeniz gerekmiyor. Nesneleri script ile yarattım.
Örnek olsun diye birkaç resim ve aşşağıdaki formatta bır
xml dosyası gerekiyor.
6
1.jpg
2.jpg
3.jpg
4.jpg
*/
//Gerekli kütüphaneler
import
flash.display.*;
import
flash.net.URLRequest;
import
flash.net.URLLoader;
import
flash.events.Event;
import
flash.display.Sprite;
import
flash.events.TimerEvent;
import
flash.utils.Timer;
import
flash.text.TextField;
import fl.transitions.*;
import fl.transitions.easing.*;
//Dışardan bilgileri alacağımız
xml dosyasına bağlanıyoruz.
var disXML:
XML;
var XMLYuk:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(”liste.
xml“);
XMLYuk.load(request);
XMLYuk.addEventListener(Event
.COMPLETE, Tamamlanan);
//
XML nesnesi yüklemesi tamamlandığında aşağıdaki fonksiyon çalışıyor.<_script /><_script />
function Tamamlanan(event:Event):void
{
var XMLYuk:URLLoader = event.target as URLLoader;
//değişkene
xml verisini yükledik.
disXML = new
XML(XMLYuk.data);
//resimler arası bekleme süresini de
xml den okutuyorum.
var bekleme=disXML.bekleme;
//
xml dosyasından kaç resim olduğunu okuyorum.
var resAdet=0;
for each (var resimAdi in disXML.resim)
{
resAdet+=1;
}
//ilk resmi direk gösteriyorum çünkü zaman ölçmeye başladığımda bekleme süresi kadar boş kalıyor.
resimGoster(0, disXML.resim [0].@baslik);
//Zaman değişkeni bekleme süresini resim sayısı kadar tekrarlayacak.
var Zaman:Timer = new Timer(bekleme*1000, resAdet-1);
Zaman.addEventListener
(TimerEvent.TIMER, Degis);
Zaman.start();
//Zaman değişkeni her tetiklendiğinde çalışacak fonksiyon
function Degis(event:TimerEvent):void
{
//resim gösterme fonksiyonunu çağırırken
xml veri indeksini zaman nesnesinin tetiklenme sayısı ile çağırtıyorum.
//resim başlıklarını da kullanımını görmek açısından farklı bir şekilde çağırttım.
resimGoster(event.target
.currentCount, disXML.resim[event.target
.currentCount].@baslik);
}
}
//her zaman tetığinde gösterilecek resim aşağıdaki fonksiyon ile çağırılıyor
function resimGoster(no, yazi)
{
//her resim için yeni movieclip nesnesi oluşturuyoruz.
var resim:MovieClip = new MovieClip();
//resmi sahneye ekliyoruz
addChild(resim);
var resYuk:Loader = new Loader();
//fonksiyona dışarıdan gelen resim indexi ile
xml dosyamızdan resmin yolunu alıyoruz
var resUrl:String = disXML.resim[no];
//resim yolunu url isteğine tanıtıyoruz
var resUrlIst:URLRequest = new URLRequest(resUrl);
//ve resimi nesneye yüklüyoruz
resYuk.load(resUrlIst);
//resim yükleyicisi nesnemize yeni olay dinleme nesnesi oluşturuyoruz
resYuk.contentLoaderInfo
.addEventListener(Event
.COMPLETE, resimYukle);
//ve yukarıda belirttiğimiz resimYukle fonsiyonunun içeriği<_script /><_script />
function resimYukle(event:Event):void
{
//sahneye eklediğimiz resim nesnesine resimyükleyici nesnesinin içeriğini atıyoruz.
//bu adımda resim sahnede görünecektir, fakat öncesinde hemen altındaki özellikleri kazanarak görüntülenecek
resim.addChild(resYuk
.content);
//aşağıdaki iki satır resmi sahne genişliği ve yüksekliğine eşitliyor.
//aslında bu yöntem resimlerde bozulmalara yol açacaktır, bunu önlemek için kullanacağınız resimleri bir resim işleme programı ile sahne boyutuna getirebilirsiniz.
resim.width=stage.stageWidth
;
resim.height=stage.stageHeig
ht ;
//resimlerin sahneye geçişli bir şekilde gelmesini sağlayan satır.(tabi yukarıda eklediğimiz kütüphaneler sayesinde)
TransitionManager.start
(resim, {type:Fade, direction:Transition.IN, duration:9, easing:Strong.easeOut });
}
//resim başlıkları için yeni yazı alanı oluşturuyoruz
var Baslik:TextField = new TextField();
Baslik.text = yazi;
//yazı alanı özellikleri
Baslik.autoSize=”center”;
Baslik.background=true ;
Baslik.backgroundColor
=0xFFFFFF;
//sahnede yaklaşık olarak nesnemizi ortalıyoruz
Baslik.x=(stage.stageWidth/2
)-50;
Baslik.y=stage.stageHeight
-30;
//ve gösterime hazır nesnemizi sahneye ekliyoruz
addChild(Baslik);
}
Hiç yorum yok :
Yorum Gönder