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.