Flash CS4 kullanılarak yapılmış harici mp3 dosyalarını çalıştıran bir player programıdır.
Çalışır halde görmek için tıklayınız.
Kaynak Kodları İndirebilirsiniz!
import flash.display.Sprite;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
//gerekli class’ları import ediyoruz
var sarki_listesi:Array=new Array(”mp3/1.mp3″,”mp3/2.mp3″);
//bu dizi sayesinde çalınacak olan şarkılar ve konumları belirtiyoruz
var sarki_caliyormu:Boolean=false;
//bu boolean değişkeni sayesinde o anda mp3 çalınıp çalınmadığını anlıyoruz.
var hangi_sarki:Number=0;
//hangi şarkının çalındığığını söyleyen değişken.
var ses:Sound;
//ses nesnesinin Sound class’ından olduğu belirtiliyor ancak daha ilişkilendirmedik.
var kanal:SoundChannel = new SoundChannel();
var ses_transform:SoundTransform = new SoundTransform();
//kanal ve ses_transform nesnelerini oluşturuyoruz.
//mp3 player’daki sırasıyla buton olarak kullanılan movieclip symbollere buton davranışı kazandırıyoruz
//ve ayrıca herbirinin click eylemine fonksiyon ilişkilendiriyoruz.
btnPrev.buttonMode=true;
btnPrev.addEventListener(MouseEvent.CLICK, geri_mp3);
function geri_mp3(event:MouseEvent):void
{
mp3_geri();
}
btnStop.buttonMode=true;
btnStop.addEventListener(MouseEvent.CLICK, stop_mp3);
function stop_mp3(event:MouseEvent):void
{
mp3_pause();
cubuk_ayar.x=cubuk_slider.x;
sarki_yukle(sarki_listesi[hangi_sarki]);
mp3_pause();
}
btnPause.buttonMode=true;
btnPause.addEventListener(MouseEvent.CLICK, pause_mp3);
function pause_mp3(event:MouseEvent):void
{
mp3_pause();
}
btnPlay.buttonMode=true;
btnPlay.addEventListener(MouseEvent.CLICK, play_mp3);
function play_mp3(event:MouseEvent):void
{
sarki_yukle(sarki_listesi[hangi_sarki]);
mp3_play(kanal.position);
}
btnNext.buttonMode=true;
btnNext.addEventListener(MouseEvent.CLICK, ileri_mp3);
function ileri_mp3(event:MouseEvent):void
{
mp3_ileri();
}
//id3_mp3 fonksiyonunu text’lere id3 bilgilerini girmek amacıyla kullanıyoruz.
function id3_mp3(event:Event):void
{
pb2.visible=false;
cubuk_ayar.visible=true;
sarki_bilgi1_txt.text=ses.id3.album;
sarki_bilgi2_txt.text=ses.id3.artist;
sarki_bilgi3_txt.text=ses.id3.songName;
sarki_bilgi4_txt.text=ses.id3.year;
sarki_bilgi5_txt.text=ses.id3.track;
sarki_bilgi6_txt.text=ses.id3.genre;
sarki_bilgi7_txt.text=ses.id3.comment;
}
//sarkı bittiğinde yapılacak olan işlemleri tanımlıyoruz.
function sarki_bitti(event:Event):void
{
mp3_pause();
mp3_ileri();
}
//ses nesnesi oluşturuluyor ve şarkı ismini tutan dizi ile load ediyoruz.
function sarki_yukle(sarki_adi:String):void
{
ses = new Sound();
ses.load(new URLRequest(sarki_adi));
//id3_mp3 fonksiyonunu oluşturmuştuk ancak hangi sarkıya ait olduğu belirtilmemiştik
ses.addEventListener(Event.ID3, id3_mp3);
mp3_play(0);//buradaki ‘0′ şarkı pozisyonunu gösterir.
}
function mp3_play(position:Number):void
{
if (! sarki_caliyormu)
{
sarki_caliyormu=true;
kanal=ses.play(position);//şarkıyı başlatıyoruz
ses_ayar.x=ses_transform.volume*ses_slider.width+ses_slider.x;
//ses_ayar symbolünün x konumu belirtiyoruz.
kanal.soundTransform=ses_transform;
kanal.addEventListener(Event.SOUND_COMPLETE,sarki_bitti);
//şarkı bittiğinde çalıştırılcak olan fonksiyonu belirtiyoruz.
cubuk_ayar.addEventListener(Event.ENTER_FRAME, cubuk_ayar_guncelle);
//cubuk_ayar symbolünün x konumunu güncelleyecek olan fonksiyonu belirtiyoruz.
}
}
function mp3_pause():void
{ //şarkı durdurulduğunda yapılacak olan işlemi belirtiyoruz.
cubuk_ayar.removeEventListener(Event.ENTER_FRAME, cubuk_ayar_guncelle);
kanal.stop();
sarki_caliyormu=false;
}
//şarkı değiştirirken geri butonuna basdığımızda bir önceki sarkının yuklenmesini sağlıyoruz.
function mp3_geri():void
{
if (hangi_sarki>0)
{
hangi_sarki–;
mp3_pause();
sarki_yukle(sarki_listesi[hangi_sarki]);
}
else
{
hangi_sarki=sarki_listesi.length-1;
mp3_pause();
sarki_yukle(sarki_listesi[hangi_sarki]);
}
}
//şarkı değiştirirken ileri butonuna basdığımızda bir sonraki sarkının yuklenmesini sağlıyoruz.
function mp3_ileri():void
{
if ((sarki_listesi.length-1)>hangi_sarki)
{
hangi_sarki++;
mp3_pause();
cubuk_ayar.visible=false;
pb2.visible=true;
sarki_yukle(sarki_listesi[hangi_sarki]);
}
else
{
hangi_sarki=0;
mp3_pause();
sarki_yukle(sarki_listesi[hangi_sarki]);
}
}
cubuk_ayar.visible=false;
cubuk_ayar.buttonMode=true;
cubuk_ayar.addEventListener(MouseEvent.MOUSE_DOWN, cubuk_surukle);
//şarkı konumunu gösteren cubuk_ayar symbolünün üzerine basdığımızda drag işleminin başlaması için
//fonksiyonu tanımlıyoruz.
function cubuk_surukle(event:MouseEvent):void
{
mp3_pause();
//cubuk_ayar symbolünün hareket sınırlarını belirtiyoruz.
cubuk_ayar.startDrag(true, new Rectangle(cubuk_slider.x,cubuk_slider.y + cubuk_slider.height/2, cubuk_slider.width, 0));
//mouse’a basmayı bıraktığımızda drag işlemini sonlandıracak fonksiyonu belirtiyoruz.
stage.addEventListener(MouseEvent.MOUSE_UP, cubuk_suruklemeyi_durdur);
}
function cubuk_suruklemeyi_durdur(event:MouseEvent):void
{
cubuk_ayar.stopDrag();//drag işlemi durduruluyor.
//sarkının devam edeceği pozisyonu belirtip tekrar çalıştırıyoruz.
mp3_play(ses.length * (cubuk_ayar.x - cubuk_slider.x) /cubuk_slider.width);
stage.removeEventListener(MouseEvent.MOUSE_UP, cubuk_suruklemeyi_durdur);
}
function cubuk_ayar_guncelle(event:Event):void
{
var pos:Number=cubuk_slider.width*kanal.position/ses.length;
if (! isNaN(pos))
{
//pos değişkeni anlamlı bir değer taşırsa çalışacak kısım
cubuk_ayar.x=cubuk_slider.x+pos;
}
else
{
//pos değişkeni anlamsızbir değer taşırsa çalışacak kısım.
cubuk_ayar.x=cubuk_slider.x;
}
}
//cubuk_ayar için yapılan işlemler ses_ayar içinde yapılıyor.
ses_ayar.buttonMode=true;
ses_ayar.addEventListener(MouseEvent.MOUSE_DOWN, ses_surukle);
function ses_surukle(event:MouseEvent):void
{
ses_ayar.startDrag(true, new Rectangle(ses_slider.x,ses_slider.y + ses_slider.height/2, ses_slider.width, 0));
ses_ayar.addEventListener(MouseEvent.MOUSE_MOVE, ses_guncelle);
stage.addEventListener(MouseEvent.MOUSE_UP, ses_suruklemeyi_durdur);
}
function ses_suruklemeyi_durdur(event:MouseEvent):void
{
ses_ayar.removeEventListener(MouseEvent.MOUSE_MOVE, ses_guncelle);
ses_ayar.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP, ses_suruklemeyi_durdur);
}
function ses_guncelle(event:MouseEvent):void
{
if (0.01>((ses_ayar.x - ses_slider.x) / ses_slider.width))
{
ses_transform.volume=0;
}
else
{
ses_transform.volume = (ses_ayar.x - ses_slider.x) / ses_slider.width;
}
kanal.soundTransform=ses_transform;
}
ses_transform.volume=1;