Bazı ufak bilgileri - kolay erişilebilir yerlerde oldukları sürece - akılda tutmaya gerek yok.
Flash actionscript ile istediğimiz bir durumda, flash nesnesini taşıyan sayfadaki bir javascript'i çağırmamız mümkün, hem de parametreler ile.
Bunun en eski ve yaygın kullanılan komutu, actionscript'in getURL komutudur. Kullanımı ise getURL("javascript:fonksiyon(parametre1, parametre2)"); şeklindedir.
Bu yazının sonunda bazı püf noktalarından bahsedeceğim, mutlaka okuyun.
Şimdi pratikte nasıl oluyor ona bakalım:
- Bir flash yaratalım ve içine bir buton koyalım. Buton'un örnek adı fBut olsun.
- Bu buton için aşağıdaki kodu yazalım.
on(release)
{
import flash.net.*;
getURL("javascript:showAlert();");
}
- Şimdi bu flash dosyasını swf halinde kaydedelim, mesela dosya adımız noname.swf olsun. Şimdi de noname.swf dosyamızı bir html ya da aspx dosyası içinde aşağıdaki gibi kullanalım.
<object width="300" height="200">
<param name="movie" value="noname.swf">
<param name="allowscriptaccess" value="samedomain" />
<embed src="noname.swf" width="300" height="200">
</embed>
</object>
Bu komut sayesinde aynı domain içerisinde, istediğimiz javascript'i çalıştırabiliriz.
- head ya da body kısmına bir javascript yazalım ve içine; flash dosyamızdaki butonun koduna yazdığımız gibi bir showAlert komutu koyalım.
<script type="text/javascript">
function showAlert() { alert("asd");}
</script>
- hazırladığımız html ya da asp.net dosyasını ve flash dosyasını bir IIS içerisinden çalıştırdığımızda çalıştığını göreceğiz.
Mesela : http://localhost/deneme/alarm.html
Ancak gerçek hayat kullanımları için bazı önemli bilgiler daha var...
- Masterpage'den türemiş content page'ler için bu uygulama nasıl yapılabilir?
Javascript'i head kısmına değil, body kısmına koyup kullanabileceğimizi hatırlayalım. Çalıştıracağımız sayfanın içeriğine yazarsak, javascript'imiz çalışacaktır.
- Şimdi kendi bilgisayarımda deniyorum, debug amaçlı çalıştırıyorum ancak javascript çalışmıyor, neden?
Bu uygulamada dikkat edilecek en önemli husus; flash, bir IIS olmadan getURL komutunu çalıştırmıyor. Kendi bilgisayarınızda bile olsa mutlaka IIS'in istediğiniz web klasörü içerisine deploy edin. Çalışacaktır.
- Bu konuda aklımda başka sorular var ne yapmalıyım?
Hemen bana myself@oozturk.net adresimden e-posta atın.
İyi çalışmalar dilerim.