Flash Programlama “Erasmus Anlaşma Haritası”

Karabük Üniversitesi Uluslararası İlişkiler Ofisinde çalışırken benden, üzerinde ülke bayraklarının buluduğu bir haritada hangi ülkeye tıklanırsa, üniversitenin o ülkedeki anlaşmalarını sıralayan bir çalışma istediler. Bu çalışma kolay güncellenebilir olmalıydı. Erasmusla ilgili olduğu için sadece Avrupa ülkelerini kapsamalıydı.

Öncelikle internetten, isteğe uygun bir harita buldum fakat bu haritayı animasyonlarda kullanabilmem için Photoshop’da bir dizi işlemden geçirmem gerekti. Görünmesini istemediğim yerleri kapatıp blurlaştırdıktan sonra bu çalışmamı doğrudan Flash programı üzerine attım. Adobe ürünlerinin en güzel özelliklerinden bir tanesi de birbirleriyle uyumlu çalışmaları. Photoshop’taki layer mantığı, Flash’ta da bulunduğundan benim tekrar tekrar layer oluşturmama gerek kalmadan tüm layerlar oluştu.

En üste de flag katmanı ve actions katmanı oluşturdum. Flags katmanını oluşturmamın sebebi, atlama olaylarını etiketlediğim isimle yapmak istemiş olmam. Bu zamana göre de yapılabiliyor. actions katmanının bazı frameleri üzerinde ise atlama ve veri çekme komutlarımızı yazacağım.

Photoshop layer’i olarak aldığım tüm ülkelerin bayraklarını F8 kısayol tuşu ile buton yaptım. Properties kısmından da instance name yazan yerleri b_alman, b_turk gibi isimlerle belirttim. Bu isimler buton fonksiyonu yazarken işimize yarayacak.

Ayrıca “germany” etiketinin olduğu yere de bir dynamic text box yapmam gerekecekti. Diğer ülkelerde de aynı şekilde olmalıydı.

Kodları karışıklık olmaması açısından actions layer’ının üzerine yazdığımı söylemiştim. Önce menu flag’ının olduğu yere kod yazmam gerekliydi. Çünkü belli bir hareketten sonra harita duracak ve seçim için tıklama dinleyecileri bekleyecekti. Seçim gerçekleştiğinde ise programlanan etikete gitmeliydiler.

Koda bakıldığında:

b_alman.addEventListener(MouseEvent.CLICK,goalman);
function goalman(evt:Event)
{
    this.gotoAndPlay("almanya");
}

b_alman butonumun, mouse tıklaması sonucunda goalman diye bir fonksiyona gitmesi gerektiğini tanımlamıştım. goalman fonksiyonu ise animasyonu gotoAndPlay fonksiyonuyla “almanya” etiketine götürecek ve orada başlatacaktır. Tüm ülkeler için bunu uyguladım. Seçim için bekletmek için en sona da stop(); fonksiyonunu yerleştirdim.

Toplam yaklaşık 5 saniye kadar süren “almanya” etiketine istediğim türde bir animasyon ekledikten sonra, sonunda verileri çekmem ve menuye dönme isteği için o saniyeler arası bekletme yapmam gerekiyordu.

var link4:URLLoader = new URLLoader();
link4.addEventListener(Event.COMPLETE, yukle4);
link4.load(new URLRequest("veriler/alman.html"));

function yukle4(event:Event):void
{
    var metin4:String = event.currentTarget.data;
    t_alman.htmlText = metin4
}
go_back.addEventListener(MouseEvent.CLICK,gogoback);
function gogoback(e:Event)
{
    this.gotoAndPlay("start");
}
stop();

Kodun sonundaki go_back metodu yine bir mouse olayı ve bizi “menu” etiketinin olduğu yere götürecek şekilde kullanıldı. Farklı olarak “var link4” isminde yeni bir urlloader oluşturuyoruz. Burada urlloader benim, alman.html’i sahneye yüklememe yardımcı olacak bir nesnedir. link4’e yine bir dinleyici ekleyip, yükleme tamamlandığında “yukle4” isimli fonksiyonu çalıştırmasını söyledik. Yükleme işlemini, “new URLRequest” nesnesini kullanarak yaptık. En sonunda aldığımız datayı string haline dönüştürüp t_czech, t_alman gibi dynamic text kutucuklarına yazma işlemini gerçekleştirdik.

Linkten animasyonun çalışan halini, dosyalarını ve kaynak kodunu indirebilirsiniz.

Yaptığım bu animasyon Karabük Üniversitesi Uluslararası İlişkiler Ofisinde bir yıl kadar kullanıldı. 2012’den sonra bu animasyon yerine yine Emre Özkaya‘yla yaptığımız Ajax uygulaması kullanılıyor.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.