Flash ve PHP ile dinamik içerik

Flash ile bir site yaptınız ve bu flashın içerisine haber bölümü ya da ona benzer, flash dışından güncellenebilecek bir metin eklemek istiyosunuz ama nasıl yapacağınızı bilmiyorsunuz?
Laf kalabalığından hoşlanmayanlar için: bu yazının en altındaki linkten ya da hemen buradan flash, XML, PHP, MySQL dosyalarından oluşan kullanıma hazır bir örneği indirebilirsiniz.


Şimdi dinamik haberleri nasıl yapacağınızı anlatayım. Gerçekten kolay olacak. Yukarıdaki resim zaten herşeyi gösteriyor. Yine de anlatımı duymak istiyorsanız: Bir flash dökümanı açın. İçine bir text alanı yaratın. Farklı bir layout kullanmıyorsanız programın alt kısmındaki properties kısmında bu text alanının tipini “Static Text” yerine “Dynamic Text” yapın. Bu bölümün hemen altındaki alana text alanımızın ismini “newsText” olarak girin. Tamam. Şimdi sağ tarafta “Single Line” yazan seçeneği “Multi Line” yapın. Onun da sağında yer alan 3 küçük ikondan ortada yer alan <a> ikonuna tıklayıp haber metninin içerisine HTML kullanılmasına izin verin. Eer scrollbar yani kaydırma çubuğu istiyorsanız CTRL+F7′ye basarak Components penceresini açın. Burada alt taraflarda bir yerlerde UIScrollBar isminde bir Component var. Onu tutup, text alanımızın üstüne çekin.

Son olarak aşağıdaki actionScripti flash dosyanıza ekleyin. news.xml dosyasını da aynı dizine koymayı unutmayın.

PHP ve MySQL dosyaları için yazının devamına bakmanız gerekecek.

  Flash ve PHP ile dinamik içerik

// flash kodu: *************
var newsArray:Array=new Array();
 
var newsList:XML = new XML();
newsList.ignoreWhite = true;
 
//xml dosyasinin tamami okundugunda calisir.
newsList.onLoad = function(success) {
        var i:Number=0;
 
        /* xml'de okudugu root altındaki düğümleri sırayla parse eder
        * ve değerlerini array'e atar. bu örnekte asagidaki gibi bi array olusacak,
        * newsArray[0][date]="21-12-2006"; newsArray[0][title]="baslik";
           * newsArray[0][content]="this is news content"
        * newsArray[1][date]="22-12-2006"; newsArray[1][title]="2. baslik";
           * newsArray[1][content]="this is a news content too"
           */

        for(var newsNode:XMLNode = newsList.firstChild.firstChild;
                        newsNode!=null;
                        newsNode = newsNode.nextSibling)
        {
                newsArray[i]=new Array();
                for(j=0; j<newsNode.childNodes.length; j++){
                    newsArray[i][newsNode.childNodes[j].nodeName] =
                                   newsNode.childNodes[j].firstChild.nodeValue;
                }
                i++;
        }
 
        locateNews();
};
 
//"news.xml" yerine "createnews.asp?id=34" gibi birşey de yazılabilir
newsList.load("news.xml");
 
 
//flash içerisinde ekrana yazdırmak için kullanılıyor
//aşağıdaki "newstext" flash ta ekrana yerleştirilmiş bir text alanı
function locateNews(){
        var output:String = "";
        for(i=0; i<newsArray.length; i++){
                output+="<b>"+newsArray[i]["date"]+"</b><br>n";
                output+=newsArray[i]["content"]+"<br><br>nn";
        }
        //trace(output)
        newsText.wordWrap = true;
        newsText.htmlText  = output;
}
 

Örnek xml dosyası.
Formatı kendi ihtiyacınıza göre değiştirebilirsiniz.

<?xml version="1.0" encoding="utf-8"?>
<newslist name="site_name">     
        <news>
                <date>15-01-2007</date>
                <title>Quod amet impedit id pro</title>
                <content>te adipisci dissentiunt necessitatibus sea.
 Habeo phaedrum scriptorem id eum.Ad eos dolor
 mnesarchum, elaboraret complectitur vix an, graece ignota officiis
ea sed. Et cum illum maiorum recteque, at iusto possim his. Labore
senserit consectetuer sit et</content>
        </news> 
        <news>
                <date>06-02-2007</date>
                <title>Dolores quaestio per ad</title>
                <content>putant expetendis eam in.
Eu timeam democritum interesset eum.
Has iuvaret adversarium necessitatibus ad.
 Pro consul aperiri mnesarchum ad.
 Duis populo eam in, est ei ignota everti pertinacia.
No ipsum recusabo eos, quando diceret in vis, vis
 ne salutandi tincidunt reprimique. Labores verterem in est</content>
        </news>                
</newslist>
 

Örnek PHP Dosyası
Buraya kadar işin flash tarafı dinamikti ama XML dosyamız statikti. Şimdi XML dosyasını da dinamik yapalım. PHP, ASP ya da diğer web dillerinden birisini biliyorsanız zaten XML dosyasını nasıl oluşturacağınız tahmin edebilirsiniz.

 
$conn = mysql_connect ("localhost", "username", "password")
                    or die("no connection");
   mysql_select_db("database") or die("noDatabase");
 
   header('Content-type: text/xml');
   echo '<?xml version="1.0" encoding="utf-8"?>';
   echo '<newslist name="site_name">';
        $sql="SELECT * FROM news ORDER BY newsdate DESC";
        if($query=mysql_query($sql)){
                while($rs=mysql_fetch_array($query)){
                        echo "<news><date>{$rs['newsdate']}</date>";
                        echo "<title>{$rs['title']}</title>";
                        echo "<content>{$rs['content']}</content></news>";
                }
        }
        echo '</newslist>';
 

Örnek MySQL
İşte bu da gerekli mysql tablo yapısı

 
--
-- Tablo yapısı : `news`
--
 
CREATE TABLE `news` (
  `id` mediumint(9) NOT NULL AUTO_INCREMENT,
  `newsdate` datetime NOT NULL,
  `title` varchar(255) collate utf8_unicode_ci NOT NULL,
  `content` text collate utf8_unicode_ci NOT NULL,
  `details` text collate utf8_unicode_ci NOT NULL,
  `lang` char(2) collate utf8_unicode_ci NOT NULL DEFAULT 'tr',
  `is_active` tinyint(4) NOT NULL DEFAULT '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
 
Kaynak blog.gudubeth.net/
Yorumunuzu Ekleyin

Yükleniyor...