Soundbestände können auf vielfältige Weise in eine Flex-Anwendung eingebettet werden, beispielsweise durch:
-
Verwenden des Metadaten-Tags
[Embed]
in einem Skript
-
Verwenden der
@Embed
-Direktive in MXML, um einen eingebetteten Bestand einer Komponente wie einem Button oder SoundEffect als Eigenschaft zuzuweisen
-
Verwenden der
@Embed
-Direktive in einer CSS-Datei
In diesem Abschnitt wird das erste Verfahren beschrieben: das Einbetten von Sound in ActionScript-Code in einer Flex-Anwendung mittels des Metadaten-Tags
[Embed]
.
Verwenden Sie zum Einbetten eines Bestands in ActionScript-Code das Metadaten-Tag
[Embed]
.
Platzieren Sie die Sounddatei im Hauptquellordner oder einem anderen Ordner, der sich im Erstellungspfad Ihres Projekts befindet. Wenn der Compiler auf ein Embed-Metadaten-Tag trifft, erstellt er die eingebettete Bestandsklasse. Sie können auf die Klasse über eine Variable des Class-Datentyps zugreifen, die Sie unmittelbar nach dem
[Embed]
-Metadaten-Tag deklarieren.
Der folgende Beispielcode bettet einen Sound namens „smallSound.mp3“ ein und verwendet eine Variable namens
soundClass
zum Speichern eines Verweises auf die eingebettete Bestandsklasse, die diesem Sound zugewiesen ist. Anschließend erstellt der Code eine Instanz der eingebetteten Bestandsklasse, wandelt sie in eine Instanz der Sound-Klasse um und ruft die
play()
-Methode für diese Instanz auf:
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();
}
}
}
Wenn Sie mithilfe des eingebetteten Sounds eine Eigenschaft einer Flex-Komponente festlegen möchten, sollten Sie den Sound in eine Instanz der mx.core.SoundAsset-Klasse anstatt in eine Instanz der Sound-Klasse umwandeln. Einen ähnlichen Beispielcode, der die SoundAsset-Klasse verwendet, finden Sie unter „Eingebettete Bestandsklassen“ im „ActionScript 3.0 – Arbeitshandbuch“.