Можно ли показать прогресс загрузки флэш-файла? - PullRequest
4 голосов
/ 02 июня 2010

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

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

Я нашел что-то с ProgressEvent.PROGRESS, но он загружается только после завершения загрузки флэш-файла.

1 Ответ

2 голосов
/ 02 июня 2010

Внутри, содержимое внутри SWF разделено на фреймы, и когда Flash Player загружает SWF, он начнет отображать и выполнять содержимое для фреймов, как только они загружены, даже если более поздние не завершены еще. Таким образом, если ваш предварительный загрузчик хранится ранее в ранних кадрах SWF, а ваше тяжелое содержимое сохраняется позже, то показ предварительного загрузчика очень возможен.

Проблема, с которой вы, вероятно, сталкиваетесь, заключается в том, что если вы создаете содержимое достаточно обычным способом, то все ваши объекты классов сохраняются в первом кадре. Самый простой способ изменить это в файле FLA: в «Параметры публикации»> «Flash»> «Настройки AS3» есть диалоговое окно «Экспорт классов в рамке:». Если вы измените этот параметр с 1 на, скажем, 5, то вы можете поместить простой предварительный загрузчик (с использованием сценариев фреймов) в первые пару фреймов корневой временной шкалы и убедиться, что все, используя классы, размещено где-то после 5-го фрейма. 1003 *

Если вы не хотите использовать рамочные сценарии в предварительном загрузчике, то также возможно использование предварительного загрузчика на основе классов, но затем вам нужно перейти в диалог свойств каждого объекта, который связан с классом, и снять флажок " Параметр «Экспорт в кадре 1», а затем убедитесь, что он размещен где-то в иерархии шкалы времени, чтобы убедиться, что он экспортируется, что немного сложнее. Естественно, объект класса, представляющий предварительный загрузчик, все равно должен быть экспортирован в первый кадр.

Или вы можете выполнить окончательный обход всей проблемы и сделать свой предварительный загрузчик отдельной SWF-оболочкой, которая просто загружает себя, затем загружает фактическое содержимое и отображает панель загрузки. Часто люди выбирают эту опцию, если хотят повторно использовать предварительный загрузчик.

...