Action Script 3 ile Javascript İletişimi
Tarih: Haziran 14th, 2009 | Yazar: Ertuğrul Erkan | Kategori: Action Script | Etiketler: action script 3, as3, external api, externalinterface, jacvascript, swf, swf ve js | 11 Yorum »Mehraba arkadaşlar. Bugün sizlere oldukça güzel bir fonksiyonu tanıtacağım. As3 sayesinde aynı sayfada bulunan Javascript kodları ile iletişime geçmek mümkün ( As2′ de de var galiba emin değilim :/ ) . Web 2.0 önemli ataklarından olan Javascript ile kullanıcılara jestler yapabilirsiniz…
Artık ben dahil birçok geliştirici Ajax kullanıyor. Veri tek sayfada gidiyor ve geri geliyor, ardından da alert ile ufak bir mesaj kutusu eşliğinde sonuç gösteriliyor. As3 zaten Ajax’ ın veri yollama kısmını halletmiş durumda. Fakat gelen mesajı illa bir text alanına atamak zorunda değilsiniz. Sonucu direkt alert ederek kullanıcıya verebilirsiniz…
As3′ ün Javascript ile iletişime geçmesini sağlayan ise External Api sınıfı. Bu sınıf statik bir şekilde yaratılmış. Yani normal fonksiyonlarımız gibi çalışmakta. Hatta hemen bir örnek yapalım;
As3′ den Js’ ye veri yollamak istersek;
<script language="JavaScript">
function mesaj(mesaj) {
alert(mesaj);
}
Bu kodu Flash çalışmamızı gömdüğümüz Html dosyasının içerisine ekliyoruz. Böylece Js tarafındaki kodlarımız tamamlanıyor. Şimdi As3 kısmında;
dugme.addEventListener(MouseEvent.MOUSE_DOWN,js_veriyolla);
function js_veriyolla(evt:Event) {
ExternalInterface.call("mesaj","herkese selam");
}
Arkadaşlar burada dugme isimli düğmeye tıklandığı anda Js tarafında “mesaj” isimli fonksiyon aranıyor. Ardından fonksiyona verilecek veriler geliyor. Eğer istersek hiç veri yazmayız; istersek de n sayıda veri yazabiliriz.
Peki Js’ den As3′ e veri yollamak istersek?
O zaman arkadaşlar asıl kodumuz Js tarafında oluyor;
<script language="JavaScript">
function mesaj() {
getSWF("Buraya Swf nizin Html' ye eklerken kullandığınız Id").sendMessage("merhaba");
}
Ardından da As3 tarafında bir bekleme yaratılıyor;
mesaj.text = ExternalInterface.addCallback("mesaj");
Burada da geri alıyoruz. Kodlarda ( özellikle de Js’ de ) sorun olabilir. Şu anda bakmadım ama bir durum olursa tekrar yazarım…
Şimdilik iyi günler, iyi çalışmalar…
Benzer Yazılar;
- As3 ve Php: AmfPhp ye Giriş
- AS3 - Adobe Air ve Dosya Sınıfı
- AS3 - Adobe Air İle Basit Bir Paint Yapalım
- SwfFit ile Swf dosyalarınızı boyutlandırın!
- Flash AS2 ve Php ile Upload Scripti Yapmak

güzel açıklaytıcaı olmuş
Birden fazla veri nasıl yollayabiliriz.
ExternalInterface.call(“mesaj”,”herkese selam”,”nasılsın”);
bu şekildemi olacak aralara virgül mü koyucaz yoksa & mı
Merhaba Feyyaz;
ExternalInterface.call("mesaj","herkese selam");bu şekilde veriyi yolluyorsunuz. Tabi ki çok şekilde de yapılabilir;
ExternalInterface.call("mesaj","herkese selam","herkese 2","herkese 3");gibi. Yani önemli olan ilk önce fonksiyon ismi; sonrasında istediğiniz kadar verisi. Bu arada araya tabiki virgül koyacaksınız.
İyi günler, iyi çalışmalar…
Yapamadım
as3 kodum bu:
tamam.addEventListener(MouseEvent.CLICK,kaydet);
function kaydet(event:MouseEvent):void
{
ExternalInterface.call(“isim”);
}
function isim()
{
alert(‘asdsad’);
}
Nerde hata var acaba yardımcı olabilirmisiniz?
Burada aslında veri yollamamızdan da kaynaklanıyor olabilir. Çünkü azami iki veri isteniyor sizden. Bu yüzden;
ExternalInterface.call("isim","bosa_veri");Şeklinde denerseniz çalışabilir…
Sorun çözülmüştür teşekkürler.Ancak local de çalışmıyor.Hosta atıp denedim oldu.;)
Local de çalıştırmanın bir yolu varmıdır acaba böyle sürekli hosta atmak zor
Sorunun çözüldüğüne sevindim
. Local bazı durumlarda sorun çıkarabiliyor onu şu anda ben anlamadım. İnternet tarayıcısından da kaynaklanan birşeyler olabilir…
İyi günler…
teşekkürler hızlıca aradığım çözüme ulaşmış oldum
Selamlar herkese;
Acaba şu şekilde bir kullanımda mevcutmu? (Eğer sayfada javascript gösterilmesini istemiyorsak) :
ExternalInterface.call(”
funtion vs() {
somecodes;
}
“);
yardımcı olursanız çok sevinirim, başarılar..
[...] [...]
div tagı action scriptten target olarak atayabilmek mümkünmüdür?