Мы работаем над проектом Flash CS4, в котором размер основного файла .fla увеличился, а «Публикация» занимает вечность. Я подозреваю, что большой размер (и, по крайней мере, часть времени компиляции) связан с количеством звуковых символов в библиотеке.
Я бы хотел удалить этот ненужный наворот из файла .fla. Я экспериментировал с удалением звукового символа из библиотеки и использованием вместо него тега метаданных [embed]
, например:
[Embed(source="audio/music/EndOfLevelDitty.mp3")]
public var EndOfLevelDitty:Class
Полученный опубликованный файл работает отлично, но есть проблема. Наша игра использует предварительный загрузчик на первом кадре временной шкалы, поэтому все другие классы необходимо экспортировать во втором кадре (как установлено в Параметры публикации> Параметры ActionScript 3.0 ). Поэтому отчет о размере обычно начинается так:
Frame # Frame Bytes Total Bytes Scene
------- ----------- ----------- ----------------
1 284515 284515 Scene 1
2 5485305 5769820 (AS 3.0 Classes Export Frame)
Однако, если я использую тег [embed]
для небольшого звука, мой отчет о размере будет:
Frame # Frame Bytes Total Bytes Scene
------- ----------- ----------- ----------------
1 363320 363320 Scene 1
2 5407240 5770560 (AS 3.0 Classes Export Frame)
Как видите, встроенный звук был экспортирован в кадр 1, а не в кадр 2. Если бы я вставил все звуки таким образом, размер кадра 1 вырос бы до огромного, и пользователи смотрели бы на белый экран целую вечность до того, как загружен кадр предварительной загрузки.
Так что мой вопрос таков: могу ли я использовать тег [embed]
, но экспортировать встроенный ресурс в кадре 2 вместо кадра 1?
Ограничения проекта:
- Состав нашей команды означает, что на данном этапе мы не можем перейти на чистый Flex.
- Скомпилированный .swf должен быть «все в одном», поэтому мы не можем разбить предварительный загрузчик на отдельный файл и не можем получить доступ к внешним ресурсам.
Редактировать : Я бы также согласился на то, чтобы аудио было во встроенной библиотеке SWC, но, похоже, также нет способа встроить звук во фрейм 2; это всегда заканчивается в кадре 1.