Gömülü seslerle çalışma

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Harici bir dosyadan ses yüklemek yerine gömülü seslerin kullanılması, düğme tıklatıldığında çalınan sesler gibi, uygulamanızın kullanıcı arabiriminde gösterge olarak kullanılan küçük sesler için daha kullanışlıdır.

Uygulamanıza bir ses dosyası gömdüğünüzde, sonuçta elde dilen SWF dosyasının boyutu, ses dosyasının boyutu kadar artar. Başka bir deyişle, uygulamanıza büyük ses dosyalarının gömülmesi, SWF dosyanızın boyutunu istenmeyen bir boyuta artırabilir.

Uygulamanızın SWF dosyasına ses dosyası gömme yöntemi, geliştirme ortamınıza göre değişiklik gösterir.

Flash'ta gömülü ses dosyasını kullanma

Flash geliştirme aracı, sesleri birçok ses biçiminde içe aktarmanıza ve Kütüphanenizde semboller olarak saklamanıza olanak sağlar. Daha sonra bunları zaman çizelgesinde karelere veya düğme durumu karelerine atayabilir, Davranışlar ile kullanabilir ya da doğrudan ActionScript kodunda kullanabilirsiniz. Bu bölümde, Flash geliştirme aracıyla ActionScript kodunda gömülü seslerin nasıl kullanıldığı açıklanmaktadır. Flash'ta gömülü sesleri kullanmanın diğer yolları hakkında bilgi almak için, bkz. “Sesleri İçe Aktarma”, Flash'ı kullanma.

Flash geliştirme aracını kullanarak bir ses dosyası gömmek için:

  1. Dosya > İçe Aktar > Kütüphaneye Aktar seçeneklerini belirleyin ve sonra bir ses dosyasını seçip içe aktarın.

  2. Kütüphane panelinde içe aktarılan dosyanın adını sağ tıklatın ve Özellikler seçeneğini belirleyin. ActionScript için Dışa Aktar onay kutusunu tıklatın.

  3. Sınıf alanına, ActionScript'te bu gömülü sesi ifade ederken kullanılacak bir ad girin. Bu, varsayılan olarak, bu alandaki ses dosyasının adını kullanır. “DrumSound.mp3” adında olduğu gibi dosya adında bir nokta varsa, bunu “DrumSound” gibi değiştirmeniz gerekir; ActionScript, sınıf adında nokta karakteri olmasına izin vermez. Temel Sınıf alanında flash.media.Sound öğesinin gösterilmesi gerekir.

  4. Tamam'ı tıklatın. Bu sınıfın tanımının sınıf yolunda bulunamadığını belirten bir iletişim kutusu görebilirsiniz. Tamam'ı tıklatıp devam edin. Uygulamanızın sınıf yolundaki herhangi bir sınıfın adıyla eşleşmeyen bir sınıf adı girdiyseniz, flash.media.Sound sınıfından miras alan yeni bir sınıf otomatik olarak sizin için oluşturulur.

  5. Gömülü sesi kullanmak için, ActionScript'te o sesin sınıf adına başvurursunuz. Örneğin, aşağıdaki kod başlatılarak otomatik olarak oluşturulan DrumSound sınıfının yeni bir örneğini oluşturur:

    var drum:DrumSound = new DrumSound(); 
    var channel:SoundChannel = drum.play();

    DrumSound, flash.media.Sound sınıfının bir alt sınıfıdır, bu nedenle de yukarıda gösterilen play() yöntemi de dahil olmak üzere, Sound sınıfının yöntemlerini ve özelliklerini miras alır.

Flex'te gömülü ses dosyasını kullanma

Flex uygulamasında ses varlıklarını gömmenin birçok yolu vardır, örneğin:

  • Bir komut dosyasında [Embed] meta veri etiketini kullanma

  • Button veya SoundEffect gibi bir bileşenin özelliği olarak gömülü bir varlığı atamak için MXML'de @Embed direktifini kullanarak.

  • CSS dosyasında @Embed direktifini kullanarak

Bu bölümde birinci seçenek açıklanmaktadır: [Embed] meta veri etiketini kullanarak Flex uygulamasında ActionScript koduna sesleri gömme.

ActionScript koduna bir varlık gömmek için, [Embed] meta veri etiketini kullanın

Ses dosyasını ana kaynak klasörüne veya projenizin oluşturma yolundaki başka bir klasöre yerleştirin. Derleyici bir Embed meta veri etiketiyle karşılaşırsa, sizin için gömülü varlık sınıfını oluşturur. [Embed] meta veri etiketinden hemen sonra bildirdiğiniz bir Class veri türündeki değişken üzerinden sınıfa erişebilirsiniz.

Aşağıdaki kod, smallSound.mp3 adındaki bir sesi gömer ve o sesle ilişkilendirilmiş gömülü varlık sınıfının bir başvurusunu saklamak için soundClass adındaki bir değişkeni kullanır. Kod daha sonra gömülü varlık sınıfının bir örneğini oluşturur, Sound sınıfının bir örneği olarak çevirir ve o örnekte play() yöntemini çağırır:

package 
{ 
    import flash.display.Sprite; 
    import flash.media.Sound; 
    import flash.media.SoundChannel; 
 
    public class EmbeddedSoundExample extends Sprite 
    { 
        [Embed(source="smallSound.mp3")] 
        public var soundClass:Class; 
         
        public function EmbeddedSoundExample() 
        { 
            var smallSound:Sound = new soundClass() as Sound; 
            smallSound.play(); 
        } 
    } 
}

Flex bileşeninin bir özelliğini ayarlamak üzere gömülü sesin kullanılması için, gömülü sesin Sound sınıfının bir örneği olarak değil, mx.core.SoundAsset sınıfının bir örneği olarak çevrilmesi gerekir. SoundAsset sınıfını kullanan benzer bir örnek için, ActionScript'i Öğrenme bölümündeki "Gömülü varlık sınıfları" başlığını inceleyin.