Utilisation des sons intégrés

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Utilisez des sons intégrés (au lieu de charger du son depuis un fichier externe) surtout dans le cas de fichiers audio de petite taille servant d’indicateurs dans l’interface utilisateur de votre application (des sons qui sont lus lorsque vous cliquez sur des boutons, par exemple).

Lorsque vous incorporez un fichier audio dans votre application, la taille du fichier SWF résultant augmente proportionnellement à la taille du fichier audio. Ceci signifie que lorsque vous incorporez des fichiers volumineux dans votre application, la taille de votre fichier SWF risque de devenir trop importante.

La méthode exacte à utiliser pour incorporer un fichier de police dans le fichier SWF de l’application varie selon l’environnement de développement.

Utilisation d’un fichier audio incorporé dans Flash

L’outil de programmation Flash vous permet d’importer des sons dans un grand nombre de formats audio et de les stocker comme symboles dans la bibliothèque. Vous pouvez ensuite les affecter à des images dans le scénario ou aux images d’un état de bouton, les utiliser avec des comportements ou directement dans du code ActionScript. Cette section décrit comment utiliser des sons incorporés dans du code ActionScript avec l’outil de programmation Flash. Pour plus d’informations sur les autres façons d’utiliser des sons incorporés dans Flash, voir « Importation de sons » dans Utilisation de Flash .

Pour intégrer un fichier son à l’aide de l’outil de programmation Flash :

  1. Sélectionnez Fichier > Importer > Importer dans la bibliothèque, puis sélectionnez un fichier audio et importez-le.

  2. Cliquez avec le bouton droit de la souris sur le nom du fichier importé dans le panneau Bibliothèque, et sélectionnez Propriétés. Activez la case à cocher Exporter pour ActionScript.

  3. Dans le champ Classe, entrez un nom à utiliser lorsque vous faites référence à ce son incorporé dans ActionScript. Par défaut, il utilisera le nom du fichier audio dans ce champ. Si le nom du fichier contient un point (comme dans DrumSound.mp3), vous devez le remplacer par DrumSound ; ActionScript n’autorise pas le caractère point dans les noms de classe. Le champ Classe de base devrait encore afficher flash.media.Sound.

  4. Cliquez sur OK. Il se peut qu’une boîte de dialogue indiquant qu’une définition pour cette classe est introuvable dans le chemin de classe apparaisse. Cliquez sur OK et continuez. Si vous avez saisi un nom qui ne correspond pas à celui d’une classe contenue dans le chemin de classe de votre application, une nouvelle classe qui hérite de la classe flash.media.Sound est générée automatiquement.

  5. Pour utiliser le son incorporé, vous référencez le nom de classe pour ce son dans ActionScript. Par exemple, le code suivant commence par créer une occurrence de la classe DrumSound générée automatiquement :

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

    DrumSound est une sous-classe de la classe flash.media.Sound. Par conséquent, elle hérite des méthodes et des propriétés de la classe Sound, notamment de la méthode play() comme indiqué ci-dessus.

Utilisation d’un fichier audio intégré dans Flex

Il existe plusieurs moyens d’intégrer des ressources son dans une application Flex. Vous pouvez par exemple :

  • utiliser la balise de métadonnées [Embed] dans un script ;

  • utiliser la directive @Embed dans MXML pour affecter une ressource intégrée en tant que propriété d’un composant, telle que Button ou SoundEffect ;

  • utiliser la directive @Embed dans un fichier CSS.

Cette section décrit la première option : comment intégrer des sons dans le code ActionScript au sein d’une application Flex à l’aide de la balise de métadonnées [Embed] .

Pour intégrer un élément dans le code ActionScript, utilisez la balise de métadonnées [Embed] .

Placez le fichier audio dans le dossier source principal ou dans un autre dossier qui se trouve dans le chemin de création de votre projet. Lorsque le compilateur détecte une balise de métadonnées Embed, il crée la classe d’actifs intégrés à votre intention. Vous pouvez accéder à la classe par le biais d’une variable de données de type Class que vous déclarez immédiatement après la balise de métadonnées [Embed] .

Le code suivant intègre un son appelé smallSound.mp3 et utilise une variable appelée soundClass pour stocker une référence à la classe de ressources intégrées associée à ce son. Le code crée ensuite une occurrence de la classe de ressources intégrées, l’attribue comme une occurrence de la classe Sound et appelle la méthode play() sur cette occurrence :

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(); 
        } 
    } 
}

Pour utiliser le son incorporé en vue de définir une propriété d’un composant Flex, elle doit être attribuée comme une occurrence de la classe mx.core.SoundAsset plutôt que comme une occurrence de la classe Sound. Pour obtenir un exemple similaire qui utilise la classe SoundAsset, voir « Classes des éléments incorporés » dans le manuel Formation à ActionScript 3.0.