Det finns flera olika sätt att bädda in ljud i ett Flex-program:
-
Använda metadatataggen
[Embed]
i ett skript
-
Använda direktivet
@Embed
i MXML för att tilldela en inbäddad resurs som en egenskap för en komponent som Button eller SoundEffect.
-
Använda direktivet
@Embed
i en CSS-fil
I det här avsnittet beskrivs det första alternativet: att bädda in ljud i ActionScript-kod i ett Flex-program med hjälp av
[Embed]
-metadatataggen.
Om du vill bädda in en resurs i ActionScript-kod använder du metadatataggen
[Embed]
.
Placera ljudfilen i huvudkällmappen eller i en annan mapp som finns i projektets byggsökväg. När kompilatorn påträffar en Embed-metadatatagg skapas den inbäddade resursklassen. Du får tillgång till klassen via en variabel av datatypen Class som du deklarerar omedelbart efter
[Embed]
-metadatataggen.
I följande kod bäddas ett ljud med namnet smallSound.mp3 in och en variabel med namnet
soundClass
används för att lagra en referens till den inbäddade resursklassen som hör till ljudet. Koden skapar sedan en instans av den inbäddade resursklassen, byter ut den mot en instans av klassen Sound och anropar metoden
play()
för den instansen:
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();
}
}
}
Om du vill använda det inbäddade ljudet för att ställa in en egenskap för en Flex-komponent, bör det bytas ut mot en instans av mx.core.klassen SoundAsset i stället för en instans av klassen Sound. Ett liknande exempel som använder klassen SoundAsset finns i ”Inbäddade resursklasser” i Learning ActionScript 3.0.