FlashDevelop: рекомендуемый способ загрузки / воспроизведения звуковых файлов

Я не уверен, является ли это FlashDevelop или общим вопросом ActionScript3, однако я пытаюсь найти лучший способ добавить звуковые файлы в мой проект flashdevelop.

Например, я обнаружил, что если я помещаю файлы.mp3 в папку bin моего проекта, я могу загрузить / воспроизвести их с помощью следующих строк кода

var sndreq:URLRequest = new URLRequest("foo.mp3");
var sound:Sound = new Sound();
sound.load(sndreq);
sound.play();

Кажется, что это немного тяжело - переместить все мои звуковые файлы в каталог bin моего проекта (но если это то, что нужно, так тому и быть). Я вижу, что есть опция "добавить в библиотеку", когда я щелкаю правой кнопкой мыши по своим медиа-файлам, но я не уверен, каков эффект этого (я надеялся, что это означало, что это будет автоматически скопировано в каталог bin проекта, но нет такой удачи).

Итак, мой вопрос: если у меня есть только flashdevelop, а не Flash CS3/4, это рекомендуемый способ загрузки локальных звуковых файлов?

2 ответа

Решение

Если вы используете только FlashDevelop, у вас есть два варианта. Вы можете вставлять ресурсы во время компиляции, чтобы они были упакованы, используя оператор [embed ...].

http://www.bit-101.com/blog/?p=853

Также обратите внимание, что в FlashDevelop вы можете щелкнуть правой кнопкой мыши ресурс и щелкнуть "Вставить в документ", который автоматически напишет для вас строку для встраивания.

В качестве альтернативы вы можете загружать ресурсы во время выполнения. Таким образом, используя метод URLRequest, как вы сейчас. Но вы не ограничены каталогом bin. Вы можете:

new URLRequest("../../../../../foo.mp3");
// or
new URLRequest("www.stackru.com/fakeresources/foo.mp3");

Независимо от того, загружаете ли вы динамически, вам потребуется путь к нему.

В целом, если вам не нужна динамика, вставьте ресурсы.

Первая часть вашего вопроса - это простая проблема, как отмечено в посте выше. Мне нравится создавать структуру файлов для всех ваших динамически загружаемых ресурсов (xml, изображений, звуков) и т. Д. Содержит каталог bin в чистоте и порядке.

Больший вопрос - вложение против загрузки ресурсов во время выполнения. Я уже не раз приходил к завершению проекта и обнаруживал, что мой единственный SWF-файл (со всеми вложенными ресурсами) вырос довольно большой и теперь требует длительной предварительной загрузки. Это может облегчить жизнь вам, как разработчику, но не очень приятно для конечного пользователя.

Моя любимая практика в эти дни - вставлять только контент, необходимый для первоначального запуска приложения, а затем максимально скрывать загрузку остальных ресурсов. Не заставляйте пользователей ждать, чтобы увидеть вашу удивительную работу!

Я на самом деле использую flash ide для упаковки наборов ресурсов, которые я публикую как swfs (хотя вы можете сделать то же самое с помощью встраивания FD). Я нацеливаю эти SWF-файлы во время выполнения и извлекаю классы из домена приложения. Я в основном строю микросайты и делю разделы контента ("страницы") на загружаемые swfs. После загрузки целевого SWF-файла страница становится доступной для навигации.

Альтернативный способ - использовать что-то вроде BulkLoader или, что еще лучше, LoaderMax от Greensock (имеет отличные функции очереди) для загрузки отдельных ресурсов.

Надеюсь, это поможет. Ура!

Другие вопросы по тегам