Action Script 3 ile Javascript İletişimi

Tarih: Haziran 14th, 2009 | Yazar: | Kategori: Action Script | Etiketler: , , , , , , | 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;

coded by nessus

“Action Script 3 ile Javascript İletişimi” yazısında 11 Ahkam var.

  1. 1 emin 22:11 on Haziran 14th, 2009 anında kesmiş:

    güzel açıklaytıcaı olmuş

  2. 2 Feyyaz 18:03 on Haziran 29th, 2009 anında kesmiş:

    Birden fazla veri nasıl yollayabiliriz.
    ExternalInterface.call(“mesaj”,”herkese selam”,”nasılsın”);

    bu şekildemi olacak aralara virgül mü koyucaz yoksa & mı

  3. 3 EeTr 18:06 on Haziran 29th, 2009 anında kesmiş:

    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…

  4. 4 Feyyaz 19:07 on Haziran 29th, 2009 anında kesmiş:

    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?

  5. 5 EeTr 19:10 on Haziran 29th, 2009 anında kesmiş:

    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…

  6. 6 Feyyaz 19:21 on Haziran 29th, 2009 anında kesmiş:

    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 :)

  7. 7 EeTr 19:24 on Haziran 29th, 2009 anında kesmiş:

    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…

  8. 8 ismail şimşek 10:48 on Ağustos 17th, 2009 anında kesmiş:

    teşekkürler hızlıca aradığım çözüme ulaşmış oldum :)

  9. 9 atasözleri 12:23 on Mart 15th, 2010 anında kesmiş:

    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..

  10. 10 Anonim 13:22 on Eylül 29th, 2010 anında kesmiş:

    [...] [...]

  11. 11 Günay 02:07 on Ağustos 15th, 2011 anında kesmiş:

    div tagı action scriptten target olarak atayabilmek mümkünmüdür?


Ahkam Kesme Aparatı

  • *