Istnieje wiele dróg osadzenia zasobów dźwiękowych w aplikacji Flex, w tym:
-
Użycie znacznika metadanych
[Embed]
w skrypcie.
-
Użycie dyrektywy
@Embed
w kodzie MXML w celu przypisania osadzonego zasobu jako właściwości składnika takiego jak Button czy SoundEffect.
-
Użycie dyrektywy
@Embed
w pliku CSS
W tej sekcji opisano pierwszą z opcji: sposób osadzania dźwięków w kodzie ActionScript w ramach aplikacji Flex za pomocą znaczników metadanych
[Embed]
.
W celu osadzenia zasobu w kodzie ActionScript należy skorzystać ze znacznika metadanych
[Embed]
.
Umieść w głównym folderze źródłowym lub innym folderze znajdującym się w ścieżce budowania bieżącego projektu. Gdy tylko kompilator napotyka znacznik Embed, tworzy klasę zasobu osadzonego. Dostęp do tej klasy można uzyskać za pośrednictwem zmiennej typu danych Class, która została zadeklarowana niezwłocznie za znacznikiem metadanych
[Embed]
.
Poniższy kod powoduje osadzenie dźwięku o nazwie smallSound.mp3 i używa zmiennej o nazwie
soundClass
do zapisania odwołania do klasy osadzonego zasobu skojarzonej z tym dźwiękiem. Następnie kod tworzy instancję klasy osadzonego zasobu, nadaje jej rolę instancji klasy Sound, oraz wywołuje metodę
play()
dla tej instancji:
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();
}
}
}
W celu korzystania z osadzonego dźwięku do ustawiania właściwości komponentu Flex powinien on być instancją klasy mx.core.SoundAsset, nie zaś instancją klasy Sound. Podobny przykład wykorzystania klasy SoundAsset zawarto w sekcji „Klasy zasobów osadzonych” w podręczniku Poznajemy język ActionScript 3.0.