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 (имеет отличные функции очереди) для загрузки отдельных ресурсов.
Надеюсь, это поможет. Ура!