sponsor adobe istanbul
Hatırlatma: MMIstanbul, hem tasarımcılar hem de programcılar içindir. MMIstanbul'u arkadaşlarınıza tavsiye edebilirsiniz.
Profili Göster

Flash ActionScript XML Arama Sistemi

Yağız Gürgül Tarih: 19/05/2007 Yorum: 0 adet

Okunma : 482 Tutanlar: Bu yazıyı 0 kişi tuttu.

XML ve Flash entegrasyonu bir önceki yazımızda gerçekleştirdik. Bu yazımda da, tüm Flash geliştiricilerinin büyük sorunu olan, Flash ortamında dinamik içeriklerinizi arama motoruna nasıl bağlayabiliceğimizi göreceğiz. Bu yazım diger XML sayfalama sistemindekine benzedigi için oradan birazcık alıntı yapıyorum: Öncelikle yeni bir Flash dokümanı açın ve ortama iki tane text atın.Bunlardan birisi başlıgımız bir digeri de detay olacak.

Bu iki text box’ı sahnede alt alta yerleştirin;

Birinci text box’ın instance name = baslik_txt İkinci text box’ın instance name = detay_txt

Bu ikisini seçin>sağtuş>convert to movieclip>ok dedikten sonra bu iki text bir movieclip içine girmiş oldu.Şimdi bunu seçin ve bunun instance name = icerik_mc olsun.

Ardından gene anasahneye üç tane buton atın.Bunlar sizin ileri geri ve arama butonlarınız olacak.

Bu iki butonun instance name’leri ileribt ve geribt olsun. Diger arama motorunun instance name’i arama_bt olsun.

Ardından ana sahneye bir text box daha atın.Bunun türü Input Text instance name’i de arama_txt olsun.

Evet tüm bu işlemlerden sonra örnek bir xml dosyası hazırlayalım.Önce yeni bir not defteri açın ve aynen şunları yazın:

Kod:

<?xml version="1.0" encoding="utf-8"?>
<icerik>
    <item>
        <baslik>Flash</baslik> 
        <detay>Gerçekten muhteşem bir program</detay> 
    </item>
    <item>
        <baslik>Adobe</baslik> 
        <detay>Baya bir zengin olan süper bir firma :)</detay> 
    </item>
    <item>
        <baslik>Macromedia</baslik> 
        <detay>Flash'ın gelecegini fark edip onu satın alan şirket ama sonra kendisi satıldı :)</detay> 
    </item>
</icerik>

Evet bu belgeyi icerik.xml şeklinde kaydedin .Artık içerigimizi de oluşturdugumuza göre sayfalama sistemine gelelim:

Flashtaki birinci frame kodumuz:

Kod:

icerik_mc._visible=false;

////////////////////////
System.useCodepage = true;
function yukle() {
var db:XML = new XML();
_global.db=db;
db.ignoreWhite = true;
db.load("icerik.xml");
db.onLoad = function(yuklendi) {
if(yuklendi) {
cogalt();
}
}
}
////////////////////////
function cogalt(sayfa_no:Number) {
var j:Number = 0;
toplam_veri = db.firstChild.childNodes.length
bulundu = false;
bulunamadi_mc._visible = bulundu;

for(i=0; i -1 || bakilacak_yer2.toLowerCase().indexOf(arama_txt.text.toLowerCase()) > -1) {

bulundu=true;

var bulunan_mc:MovieClip = icerik_mc.duplicateMovieClip("icerik_mc"+i,i);

bulunan_mc._y =(j*(icerik_mc._height+2))+icerik_mc._y;

bulunan_mc.baslik_txt.text = db.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue.toString();
bulunan_mc.detay_txt.text = db.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue.toString();
j++
}
bulunamadi_mc._visible = bulundu;
}
}
////////////////////////
function sil() {
for(i=0; i
removeMovieClip(this["icerik_mc"+i]);
}
}
////////////////////////
arama_bt.onRelease = function() {
sil();
yukle();
}

Ve çalışmanızı test edin.Örnek olarak Macromedia, Adobe kelimelerini arayabilirsiniz

Şimdi Tam olarak ne diyor bu kod? Bundan önce biraz arama motorunun mantıgını kavrayalım:

Flash içinde indexOf() şeklinde bir kod var.Örnek için yeni bir Flash açın ve birinci frame’e şu kodları yazın:

 var str:String = "Flash güzel bir program";
trace(str.indexOf("güzel"));

Ardından çalışmanızı test edin.Görüceksinizki 6 degerini vericek.Bu 6 degeri; cümledeki güzel kelimesi 6. karakterden sonra geliyor anlamında.

Güzel yerine cümledeki bir çok kelimeyi test edin.Hep -1’den büyük bir sayı alırsınız.Ama şimdi içine gazing yazın ve test edin.Bu sefer -1 degeri alıcaksınız.Yani böyle bir kelime yokmuş cümlemizde.

Biraz daha ileri gidelim ve en son açtıgımız Flash içindeki iki satırlık kodu silip şunu yazalım:

Kod:

 var db:Array=["Gazing","mmistanbul","flash","xml"];
var aranacak_kelime:String = "a";

for(i=0; i-1) {
trace(db[i]);
}
} 

Bu kodumuzda db içine kelimelerimizi yazdık.Bunu bir nevi içerik olarak düşünelim. Ardından aranacak kelime bölümüne a harfini yazdık ve for döngüsünü kurduk.

Bu döngüdeki if şartı: Eger db içindeki aranacak_kelime’nin başladıgı karakter -1’den büyükse bize o db içindeki içeriği göster.

Evet tam anlamıyla budur anlamı.Demin eger o harf yoksa -1 degerini verir; ama bulursa mutlaka -1’den büyük bir sayı verir demiştim.İşte buradaki amacımızda bu… Yani eger o harf varsa deger -1’den büyüktür.

Büyük oluncada i degerine bağlı olarak içeriği gösterir.

Evet mantık bu şekilde.Biz bu array’ı xml ile değiştirdik okadar. Yani biraz daha karmaşık hale getirdik.Neresi karışık derseniz; mesela büyük küçük harf indexOf() komutunda fark eder. Bunun için toLowerCase() fonksiyonunu kullanırız. Yani her iki bilginin (icerik ve aranacak kelime) karakterlerini küçülterek aratırız.

Umarım yeterince açıklayıcı olmuştur..

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

İçeriğe kayıtlı yorum bulunmuyor. İlk yorumu siz buradan ekleyebilirsiniz.


yeni üyelik | şifremi unuttum

aç-kapa Konferans 2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08

2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08

2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori: Konferans

aç-kapa Sergi İstanbul'da Bir Sürrealist: Salvador Dali

İstanbul'da Bir Sürrealist: Salvador Dali

Picasso ve Rodin’den sonra kimi görmek istersiniz deseler; Salvador Dali listenin ilk başlarında yer almaz mı? Ressam, yazar, bilim adamı, tasar...
Kategori: Sergi

aç-kapa Yarışma İnteraktif Pazarlama Zirvesi ve Grand Interactive Awards

İnteraktif Pazarlama Zirvesi ve Grand Interactive Awards

Türkiye’nin interaktif pazarlama projelerini değerlendiren ilk ve tek yarışması Grand Interactive Awards (GIA) için başvurular 15 Ağustos tarihi...
Kategori: Yarışma

aç-kapa Fuar CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de

CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de

CeBIT Bilişim Eurasia bu yıl 7 – 12 Ekim tarihlerinde düzenleniyor Adını dünyanın en büyük on fuarı arasına yazdırarak, İstanbul’u Avrasy...
Kategori: Fuar

aç-kapa Sempozyum Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu 2008 (YKGS 2008)

Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu 2008 (YKGS 2008)

Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu 2008 (YKGS 2008), yazılım mühendisliği alanında; kalite deneyimlerini, çözümlerini, yazılım...
Kategori: Sempozyum

üyeler Üyelerimizden...

MMIstanbul Adobe UG MMIstanbul Adobe UG

adobe user group

ColdFusion, Flex, AIR, Flash , PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Connect, Premiere, Soundbooth, Contribute, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 190 (2 kayıtlı, 188 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul