Sayfalar

27 Ağustos 2010 Cuma

.NET Uygulamalarında Flash Animasyon Dosyaları İle Haberlesmek

Bu yazımda .NET ile geliştirilen windows forms uygulamalarında swf dosyaları ile nasıl iletişim kurulacağını anlatmaya çalışacağım.

Macromedia flash animasyon dosyaları tasarım aşamasında .fla dosya uzantısını kullanır. Dağıtım ve yayınlama aşamasında çıktı olarak .swf dosya uzantısını alır.
.swf animasyon dosyaları web sayfalarında kullanılabileceği gibi windows uygulamalarında ActiveX teknolojisi aracılığı ile kullanılabilir.

İlk olarak yeni bir windows application uygulaması açıp uygulamamız içersine Shockwave Flash Object kontrolünü ekliyoruz. Action Script ve bu kontrolün FsCommand metodunu kullanarak flash dosyaları ile socket tabanlı iletişim kurabilmekteyiz.

Örnek uygulamada action script örnekleri en basit düzeyde ele alınmıştır. Profesyonel uygulamalarda action script ve .net entegrasyonu konusunda çok güzel çalışmalar ortaya çıkarılabilir.

Flash dosyasının oluşturulması

TextInput1 ve TextInput2 isimlerinde 2 adet TextInput kontrolü ve bir Buton ekliyoruz.

Layer1 içersine değişken tanımlaması yapıyoruz.

var dotnetGelenDeger = "" ;

Sahneye bir movie clip ekliyoruz. Aşağıdaki kodu movie clip içersine yazıyoruz.

onClipEvent (enterFrame)
{
_root.TextInput2.text = _root.dotnetGelenDeger;
}


Bu kod bir timer olarak düşünülebilir. dotnetGelenDeger isimli tanımladığımız değişkenin durumunu sürekli kontrol ediyor ve TextInput2 kontrolüne yazıyor.

Buton kontrolünün görevi ise TextInput1 kontrolü içindeki bilgiyi .NET içersine gönderiyor.
Bu buton altında yer alan kod


on(click){ fscommand("TextInput1_Degeri",_root.TextInput1.text);}

TextInput1_Degeri : Gönderilen parametre adı.
_root.TextInput1.text : Gönderilen değer. Bizim kullandığımız TextInput1 kontrolünün text değeri.

Windows Forms uygulamasının yapısı

private void Form1_Load(object sender, System.EventArgs e)
{
//swf dosyası konumu belirleniyor ve açılıyor.
axShockwaveFlash1.Movie = Application.StartupPath + "\\Ornek.swf";
axShockwaveFlash1.Play();
}
private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e) { if (e != null && sender != null) {
//Flash içerisinden gönderilen parametre if(e.command == "TextInput1_Degeri")
label1.Text = "Flash içerisinden " + e.args + " geldi";
//Gönderilen parametre değeri e.args }
}
//Flash içerisindeki dotnetGelenDeger değişkenine değer atama işlemi
private void button1_Click(object sender, System.EventArgs e) { axShockwaveFlash1.SetVariable("dotnetGelenDeger",textBox1.Text); }


Uygulamanın ekran görüntüsü


Hiç yorum yok:

Yorum Gönder

Bing'ı Seviyoruz. :)
Google'ı Seviyoruz. :)