Bu bölümdeki bilgiler macromedia`nın
web sayfası ve medyasoft`un hazırladığı Flash-MX
Actionscript
kitabındaki bilgiler esas alınarak hazırlanmıştır.
Paylaşılmış nesneler klasik çerezlere
benzeyen fakat çok daha etkili amaçlarla kullanılan nesnelerdir.
Verileri kullanıcının sabit diskine kopyalayarak
bir veri deposu oluşmasını sağlarlar.Daha sonra bu veriler bir
swf veya exe dosyası içinde kullanılırlar.
Bir paylaşılmış nesne oluşturabilmek için şu komutu
vermeniz yeterli olur:
nesnemiz=SharedObject.getLocal("depo");
Kullanıcı bu komutu içeren bir swf ya da exe
dosyasını ilk açtığında hemen sabit diskinde depo.sol adında bir
dosya oluşturulur.Veriler buraya kaydedilir.Daha sonraki açışlarda
ise depo.sol dosyasının içerdiği veriler doğrudan swf veya exe
dosyasında nesnemiz değişkenine atanırlar.
Bu dosyayı kullanıcılar sabit diskinde şu dizinde
bulabilirler:
Yıldız işaretlerinin olduğu alanda exe dosyaya
verdiğimiz ad yazılacaktır. Bu dizin Win98 SE içindir.Başka bir
işletim sistemi kullanıyorsanız Başlat-->Bul-->Dosyalar
ve Klasörler kısmına depo.sol yazdığınızda ilgili dizine ulaşabilirsiniz.
2- Bu komutu içeren bir URL adresindeki
swf dosyasını açtığında:
Webde bu tür bir dosya açıldığında şu dizine kayıt yapılır.URL
adresimizin şöyle olduğunu varsayalım:
Url adresi ile oluşturulan dosya adlarının aynı
olduğunu görüyorsunuz.
Bu genel bilgilerden sonra alttaki örneği inceleyelim.İsim
ve soyisim kısmındaki yazıları seçip gerekli bilgileri girin ve
sonra browserdan yenile tuşuna basın. Paylaşılmış nesne oluşturulduğundan
dosya sizin 2. kez sayfaya girdiğinizi anlayacaktır.
flashcookie.Sol dosyasını bir metin
editörü ile açarsanız buradaki değişken ve değerleri göreceksiniz.
Şimdi önemli bir konuya gelelim.Siz web sayfasını
açtıktan sonra bu tür bir kaydın yapılmasını engellemek veya yüklenecek
bilgileri sınırlamak istiyorsunuz.
Bu durumda yapılacak işlem basit.Bu tür bir swf
dosyası üzerine sağ klik yapın ve açılan menüden settings
kısmını tıklayın.Player Settings kutusu açılacaktır.
Panelin alt tarafında resimde de gördüğünüz gibi dosya
ikonuna tıklayın.Burada never kısmını işaretlerseniz bu tür dosyaların
kayıtlarını tamamen engellersiniz.
Bir deneme yapalım:
Yukardaki animasyona dönün sahnedeki mavi butona
basın.Bilgisayara kayıtlı tüm veriler silinecektir.Şimdi butonun
hemen altındaki boşluğa sağ klik yapın(uyarı=metin kutularının
olduğu alana yaparsanız istediğiniz panel açılmaz) setting kısmından
panele ulaşıp never kutusunu işaretleyin.Swf dosyasına dönün,
ilgili alanlara isminizi yazın, daha sonra browserdan yenile tuşuna
basın.İsminiz ve ziyaret sayınızın kaydedilmediğini göreceksiniz.
Eğer sadece kısıtlama yapmayı planlıyorsanız setting panelindeki
sürgü ile oynayın.
Veriler nasıl kaydedilir?
Paylaşılmış nesnelerde veriler data özelliğini kullanarak
kaydedilir.Örneğin kullanici_adi instance name`ine sahip bir metin
kutusundaki bilgileri kaydetmek için şu komutu vermelisiniz:
Tüm kayıtlar için bu data eklentisi şarttır.
Flash ile sadece metin kutusundaki bilgiler değil diziler ve xml
bilgileri de kaydedilebilir. Bunun için kullanılan kodlar:
Nesnemiz.data.savedArray=Dizinin_adi;
Nesnemiz.data.savedXML=xml_adi;
Son iki koddan daha bahsedelim.Bir diziyi veya metni
kaydetmeye zorlamak için şu komutları yazabilirsiniz.
Paylaşılmış nesnelerden bir çok alanda faydalanabilirsiniz.
Buna en basit örnek , oyunların scorlarını kaydetme, günlük veya
adres defteri hazırlama şeklinde verilebilir.
Örnek dosyanın hazırlanma tekniği:
Fla dosyasını indirip açtığınızda orada 2 input
ve 1 tane de dinamik metin kutusu göreceksiniz.İnput kutuların
instance name kısmına isim, soyisim, dinamik
kutu içinse ziyaret yazılmıştır. Buton(instance
name=resetbuton) bilgisayara kaydedilen verileri
silmek amacı için kullanılacaktır.Komutlar tek bir karede toplanmıştır:
stop();
//Adınız kutusu otomatik seçili olur.
selection.setFocus("isim");
//Flashcookie isimli bir dosya oluşturuluyor.
Nesnemiz = SharedObject.getLocal("flashcookie" );
//Şayet kullanıcının ilk ziyareti değilse
//Önceden flashcookie dosyamıza kaydettiğimiz bu isimler metin
alanına yazılır.
//Yine bu veriler aracılığı ile ziyaretçi adı ile sayısı dinamik
kutuya yazdırılır.
//Hiç giriş yazılmamışsa metin kutuları uyarı yazısı eklenir.
if (Nesnemiz.data.isim != null && Nesnemiz.data.soyisim!=
null) {
isim.text = Nesnemiz.data.isim;
soyisim.text = Nesnemiz.data.soyisim;
ziyaret.text = "Sayın "+Nesnemiz.data.isim+" "+Nesnemiz.data.soyisim+"
burayı " + Nesnemiz.data.sayac + ". kez ziyaret ediyorsunuz."
}else {
isim.text = "<Adınızı yazınız>";
soyisim.text = "<Soyadınızı yazınız>";
ziyaret.text = "Bu ilk ziyaretiniz.";
Nesnemiz.data.sayac = 1;
}
//Sayaç değeri bir arttırılır.Bir dahaki girişte bu sayede doğru
giriş değeri verilir.
Nesnemiz.data.sayac++;
//Şayet kullanıcı isimleri değiştirilirse
kayıtlı veri değişimi sağlanır.
isim.onChanged = function() {
Nesnemiz.data.isim = isim.text;
//Kaydedilen tüm veriler sıfırlanır
resetbuton.onRelease = function () {
Nesnemiz.data.isim = null;
Nesnemiz.data.soyisim = null;
Nesnemiz.data.sayac = 2;
isim.text = "<Adınızı yazınız>";
soyisim.text = "<Soyadınızı yazınız>";
ziyaret.text = "Bu ilk ziyaretiniz.";
}
//Alttaki kodlar input kutuya renk efekti
vermek için yazılmıştır
isim.background=true;
isim.border=true;
isim.borderColor=0xFF0000;
isim.backgroundColor=0xFFC4C0
soyisim.background=true;
soyisim.border=true;
soyisim.borderColor=0xFF0000;
soyisim.backgroundColor=0xFFC4C0;
Filmi test edebilirsiniz.Yukardaki çalışma bir
paylaşılmış nesne için verilen temel bilgi ve örneklerdir. Daha
detaylı bilgi için yazımızın başında bahsettiğimiz Flash-Mx kitabı
size büyük yarar sağlayacaktır.Kitabı değerlendirebilmek için
flash programını yeterli derecede bilmeniz gereklidir.Google arama
motorunda flash shared object şeklinde bir tarama yaptığınızda
örnek dosya içeren birçok linke ulaşabilirsiniz.