Существует много способов встраивания звуковых ресурсов в приложение Flex, включая следующие:
-
использование в сценарии тега метаданных
[Embed]
;
-
использование инструкции
@Embed
в MXML для назначения встроенного ресурса в качестве свойства такого компонента, как Button или SoundEffect;
-
использование инструкции
@Embed
в CSS-файле.
В этом разделе описывается первый вариант, то есть встраивание звуков в код ActionScript приложения Flex с помощью тега метаданных
[Embed]
.
Чтобы встроить ресурс в код ActionScript, используйте тег метаданных
[Embed]
.
Поместите звуковой файл в основной исходной папке или в другой папке, включенной в путь сборки проекта. Когда компилятор обнаружит тег метаданных Embed, он создаст класс встроенных ресурсов. Обратиться к классу можно через переменную типа данных Class, объявленную сразу после тега метаданных
[Embed]
.
Следующий код встраивает звук с именем smallSound.mp3 и использует переменную
soundClass
для хранения ссылки на класс встроенных ресурсов, связанный с этим звуком. Затем код создает экземпляр класса встроенных ресурсов, передает его в качестве экземпляра класса Sound и вызывает для него метод
play()
.
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();
}
}
}
Чтобы встроенный звук можно было использовать в качестве значения свойства компонента Flex, он должен быть передан в качестве экземпляра класса mx.core.SoundAsset, а не класса Sound. Подобный пример использования класса SoundAsset см. в разделе «Классы встроенных ресурсов» в документе «Изучение ActionScript 3.0».