Tekil Mesaj Gösterimi
Eski 06-03-2007, 01:34   #1 (permalink)
HAKAN
PhotoshopUzmanı Kurucusu
 
HAKAN - ait Avatar
 
Üyelik Tarihi: Feb 2007
Bulunduğu Yer: C:\Program Files\Adobe\Adobe Photoshop CS2
Yaş: 23
Mesajlar: 5.342
Teşekkür Et: 171
Thanked 2.119 Times in 934 Posts
Tecrübe Puanı: 10 HAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant futureHAKAN has a brilliant future
HAKAN - MSN üzerinden Mesaj gönder
mySQL, PHP, XML, FLASH Entegrasyonu

Ön bilgi: Bu makeleyi net bir şekilde anlamak için, mySQL, PHP, XML hakkında birazcık bilgi sahibi olmanız gerekir. Bu çalışmayı bilgisayarınızda test edebilmek için de bilgisayarınızda PHP server ve mySQL kurulu olması gerekir. bunun için google'da apache2triad diye arama yapabilir ve bulduğunuz dosyayı indirerek sisteminize kurabilirsiniz.

Önemli Not : Bu sayfada php kodunu yazarken bazı hatalar aldım. Kaynak dosyalardan faydalanmanızı tavsiye ederim.

Apache2Triad kurulumu için google arama sonuçları...
İşin kod tarafına geçmeden önce, yaptığımız işin mimarisi hakkında biraz bilgi vermek istiyorum.

Flash'a mySQL veritabanından veri çekmeninin bana göre 2 tane net çözümü var. Bir tanesi verileri XML formatına çevirip yollamak (ki ben bunu kullanıyorum ) diğeri de basit veri yollama işlemi ile yapılandır. İkincisinin FLash tarafındaki kod çok karmaşık olduğu için tavsiye etmem kullanmanızı.

Flash'a veri çekerken izlenen yol şöyledir.

PHP ile mySQL veritabanından veriler alınır. Alınan veriler PHP içinde bir döngü ile XML foratına dönüştürülür ve Flash bunu normal bir XML gibi alıp işleyerek verileri bize sunar.

ilk önce database'imize verileri kayıt edelim;
Code:
http://localhost/phpmyadmin
adresine girerek database adında yeni bir database oluşturun. Daha sonra sql sorgusu butonuna basın ve aşağıdaki kodu oraya ekleyerek sorguyu gönderin.

Code:
CREATE TABLE `liste` ( 
`id` int(11) NOT NULL auto_increment, 
`baslik` varchar(255) NOT NULL default ', 
`genis` text NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=6 ; 


INSERT INTO `liste` VALUES (1, 'flash', 'birinci veri'); 
INSERT INTO `liste` VALUES (2, 'ikinci', 'second flash second flash'); 
INSERT INTO `liste` VALUES (3, 'ucuncu', 'ucuncu yazı'); 
INSERT INTO `liste` VALUES (4, 'dorduncu', 'bu da dorduncu.'); 
INSERT INTO `liste` VALUES (5, 'besinci', 'sonuncu ');
database'imiz hazır.
şimdi database'den bu verileri çekip XML formatına sokan PHP dosyamızı yazalım.

Code:
$link = mysql_connect("localhost","root", "password"); 
mysql_select_db("database"); 

$dongu = mysql_query("SELECT * FROM liste ORDER BY id ASC"); 
$rows = mysql_num_rows($dongu); 

echo "<liste> "; 

for($i=0; $i<$rows; $i++){ 
$no = mysql_result($dongu,$i,"id"); 
$baslik = mysql_result($dongu,$i,"baslik"); 
$genis = mysql_result($dongu,$i,"genis"); 

echo "<tum> "; 
echo "<baslik>" . $baslik . "</baslik> "; 
echo "<genis>" . $genis . "</genis> "; 
echo "</tum> "; 
} 

echo "</liste> "; 

mysql_close($link);
bu dosyayı xml.php olarak kaydedin ve localhost dizinine atın.

Daha sonra yeni bir flash dosyası açın.
ekrana bir tane dinamik txt ekleyin ve instance name alanına my_txt yazın.
Ardından bu dinamik txt'i seçip f8'e basın ve onu movieClip'e çevirin. Bu movieClip'e my_mc adını verin.
Daha sonra timeline'daki frame'i seçip aşağıdaki kodu actions kısmına yapıştırın.

Code:
stop(); 
//dışardan veri aldığımız için Türkçe karakterlerin gözükmesini sağlamak için 
//useCodePage ekliyoruz. 
System.useCodepage = true; 
//yeni bir XML nesnesi tanımlıyoruz 
var myXML:XML = new XML(); 
myXML.ignoreWhite = true; 
//XML dosyamız yüklendikten sonra yapılacak işlemleri onLoad içine yazıyoruz. 
myXML.onLoad = function() { 
//XML dosyamızdaki toplam node sayısını öğreniyoruz. 
var gen = _root.firstChild.childNodes; 
// Node sayısına göre bir döngü gerçekleştiriyoruz 
for (var i:Number = 0; i<gen.length; i++) { 
var baslik = (gen[i].childNodes[0].firstChild.nodeValue); 
var icerik = (gen[i].childNodes[1].firstChild.nodeValue); 
//xml verilerimiz hazır 
//mc.yi veri sayısına göre çoğaltıyoruz. 
my_mc.duplicateMovieClip('mc'+i, _root.getNextHighestDepth()); 
//çoğalttık bitti bile... 
//////////////burada text boxlara çeşitli işkenceler düzenliyoruz. 
_root['mc'+i].my_txt.autoSize = true; 
_root['mc'+i].my_txt.html = true; 
_root['mc'+i].my_txt.border = true; 
_root['mc'+i].my_txt.borderColor = 0x000000; 
_root['mc'+i].my_txt.background = true; 
_root['mc'+i].my_txt.backgroundColor = 0x000000; 
_root['mc'+i].my_txt.htmlText = "<b>"+baslik+"</b> <br>"+icerik; 
_root['mc'+i]._y = _root['mc'+(i-1)]._y+_root['mc'+(i-1)]._height+2; 
//////////////işkence sonu 
} 
//döngü bitişi 
}; 
//xml/php dosyaımızın adresi 
myXML.load("http://localhost/xml.php");
CTRL + ENTER ile sonuca bakın.

kaynak dosyaları
http://www.mmistanbul.com/makaleler/...h_xml/test.rar adresinden indirebilirsiniz.
__________________

ARAMASIN GÖZLER O ŞİMDİ ASKER!..
HAKAN is offline   Alıntı ile Cevapla
Sponsored Links