Ses Örnekleri-4


Uygulama:

1- Kedi klibini hariç tutarsak dosyada 2 önemli klip mevcuttur. Birincisi sürgü_bar diğeride sürgünün hareket ettiği aralık klibidir.

2- Önce aralık klibini oluşturalım. 1 piksel genişliğinde 100 piksel yüksekliğinde siyah renkli bir dikdörtgen oluşturalım. 100 piksel yükseklik seçilmesindeki amaç ilerde uygulayacağımız kodlardaki matematiksel işlemin anlaşılır olması içindir.

3- Bir sürgü butonu oluşturalım.Daha sonra yeni bir movie klip açalım. Butonu bu klip içine yerleştirelim.

4- Ana sahneye dönelim. İlk katmana kedi film klibimizi yerleştirelim. İkinci bir katman ekleyelim ve buraya sürgü grafiğimizin arka planını koyalım.Üçüncü bir katman ekleyerek bu alana da ses şiddetini gösteren rakamlarımızı yerleştirelim. Tekrar bir katman ekleyelim. Kütüphaneden önce aralık klibini sonra bunun tam üstüne sürgü_bar klibimizi yerleştirelim. Şimdi bu klipleri adlandıralım.(surgu , aralik ve kedi)

5- Aralık klibini seçelim. Klibin merkez noktasını en alt kısma alalım. Bunun için araç kutusundan Free Transform aracını seçelim.Klibe ait artı şekliyle gözüken merkez noktasını mouse ile tutarak(imleçte bu alana gelince daire şeklinde bir oluşum ortaya çıktığını göreceksiniz) en alt kenara indirelim. Bu nokta sesin en kısık olduğu alan olacaktır.

/* Class ismini kedi_sesi olarak ayarladığımız ses dosyasını
sesimiz değişkenine atıyoruz.Bunun nasıl yapıldığını 1.örnekte görebilirsiniz*/

var ses:kedi_sesi = new kedi_sesi();
var sesimiz=ses.play(0,500);

/*Sürgünün alt sınırını tesbit ediyoruz.Bu değeri volüm
ayarlamasında kullanacağız*/

var alt_sinirimiz=aralik.y;

/* Sürgünün hareket ettiğinde çalışacak fonksiyonu
hazırlıyoruz.*/

function yukle(event:MouseEvent):void {
/*Yeni bir nokta oluşturuyoruz ve başlangıç değeri
için sürgü klibinin x ve y değerlerini atıyoruz.Sonra sesimizi
transforme edeceğimizi deklare ediyoruz.Sürgünün hareket edeceği
alan 100 piksel olduğundan her bir piksel hareket için ses şiddeti
0.01 olacak şekilde azaltılıp çoğaltılması için gereken
matematiksel işlem hazırlanıyor.ses volüm değerinin 0-1
arasında değiştiğini hatırlatmakta yarar var.Bu matematiksel işlem
bu üst ve alt sınırı gözeterek planlanmıştır.*/

var noktamiz:Point = new Point(surgu.x,surgu.y);
var transform:SoundTransform = sesimiz.soundTransform;
transform.volume =( alt_sinirimiz-noktamiz.y)/100;
trace(transform.volume)
sesimiz.soundTransform = transform;
}

surgu.addEventListener(MouseEvent.MOUSE_MOVE, yukle);

//Sürgünün fare ile sürükleneceği koordinatlar ayarlanıyor
function cek(event:MouseEvent):void {
var alan:Rectangle = new Rectangle(aralik.x,aralik.y-100,aralik.width,aralik.height);
surgu.startDrag(true,alan);
}
surgu.addEventListener(MouseEvent.MOUSE_DOWN, cek);

//Fare sol tuşu bırakılınca sürükleme sonlandırılıyor
function birak(event:MouseEvent):void {
surgu.stopDrag();
}
surgu.addEventListener(MouseEvent.MOUSE_UP, birak);