Er zijn veel manieren waarop u geluidselementen in een Flex-toepassing kunt insluiten, zoals:
-
Met de metagegevenstag
[Embed]
in een script
-
Door met de aanwijzing
@Embed
in MXML een ingesloten geluidselement toe te wijzen als een eigenschap van een onderdeel zoals een Button of een SoundEffect.
-
Met de aanwijzing
@Embed
binnen een CSS-bestand
In deze sectie wordt de eerste optie beschreven: geluiden insluiten in ActionScript-code binnen een Flex-toepassing met behulp van de metagegevenstag
[Embed]
.
Als u een element wilt insluiten in ActionScript-code, gebruikt u de metagegevenstag
[Embed]
.
Plaats het geluidsbestand in de hoofdbronmap of in een andere map die zich bevindt in het bouwpad van het project. Wanneer de compiler van een metagegevenstag Embed aantreft, wordt het ingesloten klassenelement automatisch gemaakt. U krijgt toegang tot de klasse via een variabele van het gegevenstype Class die u direct na de metagegevenstag
[Embed]
moet declareren.
Met de volgende code wordt een geluid met de naam smallSound.mp3 ingesloten en wordt een variabele met de naam
soundClass
gebruikt om een verwijzing op te slaan naar het ingesloten klassenelement dat aan het geluid is gekoppeld. De code maakt vervolgens een instantie van het ingesloten klassenelement, cast deze als een instantie van de klasse Sound en roept de methode
play()
aan voor die instantie:
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();
}
}
}
Als u het ingesloten geluid wilt gebruiken om een eigenschap van een Flex-component in te stellen, moet u het geluid casten als een instantie van de klasse mx.core.SoundAsset en niet als een instantie van de klasse Sound. Zie ''Ingesloten klassenelementen'' in ActionScript 3.0 leren gebruiken voor een vergelijkbaar voorbeeld waarin de SoundAsset-klasse wordt gebruikt.