Как работает preloader в as3? - PullRequest
1 голос
/ 05 октября 2009

Я прочитал несколько примеров по этому поводу, но я просто не понимаю, как это работает.

  • Откуда класс знает, что это THE предварительный загрузчик?
  • Как Flash узнает, чтобы загрузить один класс, но не другой?
  • Сколько я могу сделать в preloader? : -Р

Я использую FlashDevelop atm, и он генерирует проект для меня - однако из всех проверенных примеров они также не объясняли, как он работает.

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Вы знакомы с временной шкалой Flash?

По умолчанию ваш SWF будет иметь один кадр. Этот фрейм содержит ваш класс Preloader.as. Во время компиляции FD создает второй фрейм, который содержит ваш главный класс - класс, который вы хотите запустить после загрузки всего SWF. Preloader.as содержит код, который ждет, пока все кадры не будут полностью загружены, а затем создает экземпляр класса Main.

Подробнее от http://www.flashdevelop.org/community/viewtopic.php?f=9&t=5398:

Когда вы создаете «проект AS3 с предварительным загрузчиком», FD настраивает несколько важных вещей, которыми вы должны управлять:

  1. в Preloader.as, Существует вызов для определения вашего основного класса: getDefinitionByName ("{квалифицированное имя основного класса}")

  2. в свойствах проекта, Параметры компилятора> Дополнительные аргументы компилятора [...] Там должен быть: -frame start {квалифицированное имя основного класса}

Flash знает, что нужно запускать Preloader.as в первую очередь, потому что FD помещает его в первый кадр, а FD делает это, потому что класс Preloader был установлен на «Always Compile» (вы можете установить эту опцию самостоятельно, щелкнув правой кнопкой мыши на класс и выбрав «Всегда компилировать»).

Вы можете делать все, что угодно, в предварительном загрузчике, но он не будет запускать какой-либо код до тех пор, пока все необходимое для предварительного загрузчика не будет загружено. Поэтому, если вы создадите предварительный загрузчик с 3-мегабайтным файлом изображения и индикатором выполнения, индикатор выполнения ничего не изменит до тех пор, пока не будет загружено все изображение!

1 голос
/ 05 октября 2009

В AS3 я использую только внешние предварительные загрузчики (они являются SWF), которые затем загружаются в мой основной SWF. Я гарантирую, что preloader swf маленький, так как вы не можете предварительно загрузить preloader. Существует класс Loader, который вы используете для загрузки в SWF и получения информации о нем (размер и т. Д.). Вы можете прослушивать события, чтобы получить эту информацию, а затем использовать ее для отображения индикатора выполнения и т. Д.

Таким образом, предварительный загрузчик - это не просто класс, выполняющий работу, и вы говорите об этом, передав URL-строку, содержащую swf, который вы хотите загрузить.

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

Для действительно великолепного учебника посмотрите http://www.gotoandlearn.com/play?id=85. У Ли также есть ссылка на файлы для скачивания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...