Arkadaslar ufak bir media player yaptık ama bir sıkıntı su siteye girildiginde otomatik başlamasını istiyoruz play basmadan sonra durdurmak isteyen tekrar durdurur ve baslar kodların nersini değiştirirsem girdiginde tomatik baslar bilgi verirseniz sevinirim yalnız xml olarak cagırtılıyor ?
var XML_mp3:XML;/*Yeni bi XML tanımlıyoruz, buna daha sonra veri atayacağız.*/
var ses:Sound/*Ses için bir Sound nesnesi tanımlıyoruz, buna daha sonra veri atayacağız.*/
var kanal:SoundChannel;/*Sesimizi kontrol etmek için as2'den farklı olarak bir ses kanalı atamamız gerekiyor.*/
var xml_yuklendi:Boolean=false/*XML'in yüklenip yüklenmediğin kontrol etmek için bir boolean oluşturuyoruz.*/
var ykl_tik:Boolean=false/*ykl_mc'ye tıklama olup olmadığını kontrol için bir boolean oluşturuyoruz,bunu daha sonra kullanacağız.*/
var calmaVarmi:Boolean=false/*Şu anda çalma olup olmadığını kontrol için bir boolean oluşturuyoruz,bunu daha sonra kullanacağız.*/
var durmaPozisyonu:Number=0/*Şarkını durma anındaki konumu. Şimdi sıfır.*/
cal_mc.bsl_btn.visible=false/*başlama butonu başta görünmesin.*/
cal_mc.dur_btn.visible=false/*durma butonu başta görünmesin.*/
var yukleyici:URLLoader = new URLLoader();/*XML'i yüklemek için yukleyici isminde bir URLLoader tanımlıyoruz.*/
yukleyici.load(new URLRequest("http://www.mrcheto.com/ajans/adres.xml"));/*Yüklenecek XML yolunu belirtiyoruz.*/
yukleyici.addEventListener(Event.COMPLETE, XML_calis);/*XML yüklemesi bitince çalışacak olan 'XML_calis' fonksiyonu için bir dinleyici atıyoruz*/
function XML_calis(e:Event){/*XML yüklenince çalışacak fonksiyon*/
XML_mp3 = new XML(e.target.data);/*Daha önceden tanımladığımız XML_mp3'e yüklenen XML'in içeriği ekleniyor.*/
hakkinda_txt.text=XML_mp3.bilgi[1]/*hakkinda_txt'e XML'deki ikinci bilgi ekleniyor.*/
xml_yuklendi=true/*XML yüklendi.*/
cal_mc.bsl_btn.visible=true/*XML yüklenince başlama butonu görünsün.*/
}
cal_mc.bsl_btn.addEventListener(MouseEvent.CLICK,b asla)/*Başlama butonuna basınca 'basla' fonksiyonunu çağır.*/
cal_mc.dur_btn.addEventListener(MouseEvent.CLICK,d urdur)/*Durdurma butonuna basınca 'durdur' fonksiyonunu çağır.*/
var ses_yuzde:Number/*Aşağıda kullanacağımız ses yüzde değeri için bir Number tanımlanıyor.*/
var ilk_play:Boolean=true/*ilk defa play'e basıldığında yüklemeyi başlatmak için.*/
function basla(e:MouseEvent){/*Başlat tuşuna(cal_mc.bsl_btn) basınca yapılacaklar*/
cal_mc.bsl_btn.visible=0/*Başla tuşu görünmesin*/
cal_mc.dur_btn.visible=1/*Durdur tuşu görünsün*/
if(ilk_play){/*Eğer bu tuşa ilk defa basılıyorsa*/
ses= new Sound(new URLRequest(XML_mp3.bilgi[0]));/*ses'e XML'in ilk bilgisi yolundaki şarkı atansın*/
ses.addEventListener(ProgressEvent.PROGRESS, ses_yukle);/*Yükleme esnasında 'ses_yukle' fonksiyonunu çağır*/
function ses_yukle(e:ProgressEvent){
ses_yuzde = e.bytesLoaded / e.bytesTotal/*Ses için tanımladığımız yüzde yüklenen/tüm boyut olarak belirlendi*/
cubuklar.ykl_mc.width=ses_yuzde*cubuklar.tbn_mc.wi dth/*ykl_mc genişliği, tbn_mc'nin yukarıda belirlenen yüzdesi kadar olsun*/
}
ses.addEventListener(IOErrorEvent.IO_ERROR, hata)/*Eğer yüklemede bir hata olursa*/
function hata(e:IOErrorEvent){
calmaVarmi=false/*Çalma yok*/
cal_mc.bsl_btn.visible=0/*Tuşlar görünmesin*/
cal_mc.dur_btn.visible=0
hakkinda_txt.text="Hata! Ses dosyası bulunamadı"/*Yazı alanı uyarı mesajı versin*/
pz.pz_i.alpha=0/*köşeli parantez silinsin*/
}
ilk_play=false/*Play tuşuna ilk basış fonksiyonu bir kere çalışsın diye 'ilk_play' false yapıldı.*/
}
kanal = ses.play(durmaPozisyonu)/*Sesi durma pozisyonunda oynatıyoruz*/
calmaVarmi=true;/*Çalma var*/
pz.pz_i.alpha=1/*Köşeli parentez çalmada görünsün*/
}
function durdur(e:MouseEvent){/*Pause tuşuna(cal_mc.bsl_btn) basınca yapılacaklar*/
calmaVarmi=false/*Çalma yok*/
cal_mc.bsl_btn.visible=1/*Play tuşu görünsün pause tuşu görünmesin*/
cal_mc.dur_btn.visible=0
durmaPozisyonu = kanal.position;/*Durma konumu şimdiki konuma eşitlensin*/
kanal.stop();/*Ve durma gerçekleşsin*/
}
pz.sag.width=0/*Spektrumların ilk genişliği sıfır*/
pz.sol.width=0
var yuzde:Number/*Daha sonra kullanılacak yüzde değeri*/
cubuklar.alpha=0/*çubuklar başta görünmesin*/
silgi.alpha=0/*'silgi' yani yazının üstündeki katman, başta görünmesin*/
pz.pz_i.alpha=0/*ve öşeli parantez başta görünmesin*/
stage.addEventListener(Event.ENTER_FRAME,calis)/*Sürekli çalışacak fonksiyon*/
function calis(e:Event){
if(calmaVarmi && xml_yuklendi){/*Konum çubuğu ayarları - çalma varsa ve XML yüklenmişse yapılacaklar*/
yuzde=kanal.position/ses.length/*'yuzde' değeri şimdiki konum/tüm uzunluk olarak atanıyor*/
if(!ykl_tik){/*ykl_mc'ye tıklama yoksa yapılacaklar*/
cubuklar.knm_mc.width=cubuklar.ykl_mc.width*yuzde} else{/*knm_mc genişliği ykl_mc'nin yüzdesi kadar olsun, yoksa;*/
if(mouseX-cubuklar.x>=cubuklar.ykl_mc.width){cubuklar.knm_mc .width=cubuklar.ykl_mc.width}/*Eğer knm_mc genişliği sınırı aşarsa ykl_mc genişliğine eşit olsun*/
if(mouseX-cubuklar.x<=0){cubuklar.knm_mc.width=0}/*Sıfırdan küçükse sıfıra eşit olsun*/
if(mouseX-cubuklar.x>0 &&mouseX-cubuklar.x<cubuklar.ykl_mc.width){cubuklar.knm_mc. width+=(mouseX-cubuklar.x-cubuklar.knm_mc.width)/2}/*İkisi de değilse mouse'un konumuna eşit olsun -Burada animasyonlu geçiş için son işlem yapıldı-*/
}
if(Math.round(silgi.alpha*11)!=11){/*Eğer silgi alpha belirli bir değere eşit değilse -çalma anındaki animasyon için-*/
silgi.visible=cubuklar.visible=true/*silgi ve çubuklar görünsün*/
silgi.alpha+=(1-silgi.alpha)/10/*silgi ve çubuklar yavaş yavaş görünsün*/
cubuklar.alpha+=(1-cubuklar.alpha)/10}
pz.sag.width+=(kanal.rightPeak*100*180/100-pz.sag.width)/3/*Spektrum çubukları sol ve sağ ses düzeylerine göre genişlik alsın*/
pz.sol.width+=(kanal.leftPeak*100*180/100-pz.sol.width)/3
}
if(!calmaVarmi){/*Çalma yoksa*/
if(Math.round(silgi.alpha*10)!=0){/*silgi alpha belirli bir değere eşit değilse (Yukarıdaki gibi işlemi sınırlamak için)*/
silgi.alpha-=(silgi.alpha)/10/*silgi ve çubuklar yavaş yavaş kaybolsun*/
cubuklar.alpha-=(cubuklar.alpha)/10}else{/*değilse*/
silgi.visible=false/*silgi ve çubuklar görünmesin*/
cubuklar.visible=false
}
pz.sag.width-=pz.sag.width/3/*Çalma yoksa spektrum çubukları küçülüp kaybolsun*/
pz.sol.width-=pz.sol.width/3
if(Math.round(pz.sol.width)==0 && Math.round(pz.sag.width)==0 &&pz.pz_i.alpha>0){
pz.pz_i.alpha-=.1/*Spekturm çubukları kaybolunca köşeli parantez de kaybolsun*/
}
}/*!calmaVarmi işlemi bitti*/
if(Math.round(cubuklar.knm_mc.width)==Math.round(c ubuklar.width) && !ykl_tik){/*Çalma bitince durma formatına geçip başa sarmak için*/
calmaVarmi=false/*çalma yok*/
kanal.stop()/*Sesi durdur*/
cubuklar.knm_mc.width=0/*knm_mc başa gelsin*/
cal_mc.bsl_btn.visible=1/*Play tuşu görünsün pause görünmesin*/
cal_mc.dur_btn.visible=0
durmaPozisyonu=0/*Durma konumu sıfır*/
}
}/*EnterFrame bitti*/
/*Mouse ile konum değiştirme işlemi*/
cubuklar.knm_mc.width=0/*İlk durumda knm_mc genişliği sıfır*/
cubuklar.knm_mc.addEventListener(MouseEvent.MOUSE_ DOWN,bas_ykl)/*knm_mc'ye ve ykl_mc'ye tıklamada da aydı fonksiyon çağırılıyor*/
cubuklar.ykl_mc.addEventListener(MouseEvent.MOUSE_ DOWN,bas_ykl)
stage.addEventListener(MouseEvent.MOUSE_UP,cek_ykl )/*Tıklamadan çekilince yapılacaklar için fonksiyon çağırılıyor*/
function bas_ykl(e:MouseEvent){/*Tıklama anında*/
if(calmaVarmi){/*Çalma varsa*/
ykl_tik=true/*ykl_tik var. Yukarıda bunun olması halinde yapılacaklar belirlenmişti*/
}
}
function cek_ykl(e:MouseEvent){/*Çekme anında*/
if(calmaVarmi&&ykl_tik){/*Eğer çalma varsa ve ykl_tik gerçekleşmişse*/
kanal.stop()/*önce sesi durdur*/
if(mouseX-cubuklar.x>=cubuklar.ykl_mc.width){kanal = ses.play(ses.length*199/200)}/*Sınırı aşan bir yerde bırakılmışsa sesin son kısmında oynat*/
if(mouseX-cubuklar.x<=0){kanal = ses.play(0)}/*Sıfırdan önce bir yerde bırakılmışsa sıfırdan oynat*/
if(mouseX-cubuklar.x<cubuklar.ykl_mc.width && mouseX-cubuklar.x>0){/*Eğer bu ikisi de olmamışsa yani ortada bir yerde bırakılmışsa;*/
kanal = ses.play(ses.length*(mouseX-cubuklar.x)/cubuklar.ykl_mc.width)}/*Mouse konumuna göre sesi oynat*/
ykl_tik=false/*Bıraktığımıza göre artık tıklama yok*/
}
}