Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий
Использование встроенных звуков вместо загрузки звуков из внешнего файла больше всего подходит для небольших файлов, которые используются в качестве индикаторов в пользовательском интерфейсе приложения, например звуки, воспроизводимые при нажатии кнопок.
Когда аудиофайл встраивается в приложение, размер полученного SWF-файла увеличивается на размер встроенного файла. Другими словами, встраивание больших звуковых файлов в приложение может привести к нежелательному увеличению размера SWF-файла.
Выбор метода встраивания аудиофайла в SWF-файл приложения зависит от среды разработки.
Использование встроенных аудиофайлов в Flash
Инструмент разработки Flash позволяет импортировать звуки в разных форматах и сохранять их в виде символов в библиотеке. После этого звуки можно добавлять в кадры на временной шкале или в кадры состояния кнопки, использовать их для поведений или непосредственно в коде ActionScript. В этом разделе описывается, как использовать звуки, встроенные в код ActionScript с помощью инструмента разработки Flash. Сведения о других способах использования встроенных звуков Flash см. в разделе «Импорт звуков» руководства
Использование Flash
.
Встраивание аудиофайла с помощью инструмента разработки Flash
-
Выберите команды «Файл» > «Импорт» > «Импортировать в библиотеку», а затем укажите аудиофайл и импортируйте его.
-
Щелкните правой кнопкой мыши имя импортированного файла на панели «Библиотека» и выберите «Свойства». Установите флажок «Экспорт для ActionScript».
-
В поле «Класс» введите имя, которое будет использоваться при ссылке на данный встроенный звук в ActionScript. По умолчанию будет использоваться имя аудиофайла, указанное в этом поле. Если в имени файла есть точка, как в имени «DrumSound.mp3», его необходимо изменить, например, «DrumSound»; код ActionScript не допускает использования точек в имени класса. В поле «Базовый класс» должен отображаться класс flash.media.Sound.
-
Нажмите кнопку «ОК». Возможно, появится сообщение о том, что этот класс не найден в пути к классам. Нажмите кнопку «ОК», чтобы продолжить. Если вы ввели имя класса, не соответствующее ни одному из классов в пути к классам приложения, автоматически создается новый класс, наследующий методы и свойства класса flash.media.Sound.
-
Чтобы использовать встроенный звук, укажите его имя класса в ActionScript. Например, следующий код в первую очередь создает новый экземпляр автоматически созданного класса DrumSound.
var drum:DrumSound = new DrumSound();
var channel:SoundChannel = drum.play();
Класс DrumSound является подклассом класса flash.media.Sound и поэтому наследует его методы и свойства, включая метод
play()
, как показано выше.
Использование встроенных аудиофайлов в Flex
Существует много способов встраивания звуковых ресурсов в приложение 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».
|
|
|