Flash Ripper RSS Readers

+

03.Август.2007

FAQ #7: Как сделать, чтобы прелоадер моего сайта стартовал с отметки 1%, а не 75?

Flash CS3 на дворе, но вечный вопрос задается все чаще: как сделать, чтобы предзагрузчик моего флэш-сайта стартовал не с 75 процентов, а с 1? В том числе и во Flash CS3?

Причина такого поведения очень проста: ваш предзагрузчик появляется, когда целиком загружен первый кадр клипа (предполагаем, что прелоадер находится внутри загружамого им приложения). Если первый кадр "тяжелый" и весит 75% от общего размера -- то и прелоадер честно появляется только после того, как эти 75% будут загружены.

Чтобы решить проблему, нужно уменьшить эти 75% до 1%. Сначала разберемся, из чего они состоят. А это:

  1. Все элементы библиотеки, в свойствах которых установлен флаг "Export in first frame": Мувиклипы, компоненты, шрифты, звуки...
  2. Классы вашего приложения.
  3. Сам прелоадер

Следовательно, нужно:

1. В свойствах КАЖДОГО элемента библиотеки снять флаг "Export in first frame" и ВРУЧНУЮ экспортировать его в нужный кадр приложения, идущий ПОСЛЕ прелоадера, но ДО первого использования данного элемента. Для этого я организовываю свои флэш-приложения таким образом: создаю спец. слой "export assets", в котором и размещаю вручную все экспортируемые элементы ВНЕ СЦЕНЫ; обратите внимание, что в 10 кадр этого слоя элементы экспортируются, а в 11 кадре их уже нет:

Основное приложение стартует с 20 кадра (метка "app init"); в своих проектах вы можете использовать другие интервалы: например, экспортировать в 3 кадр и запускать приложение в четвертом; я же опытным путем пришел к тому, что чувствую себя комфортно при таком несколько избыточном разносе элементов (ага, а в GW Basic строки нумеровались через 10. Славное было время -- компьютерный кружок, ПЭВМ "Поиск"...)

2. В настройках публикации указать, что классы должны экспортироваться не в первый кадр, как это происходит по умолчанию, а в выбранный вами. В данном примере -- это тот же 10 кадр. Итак, идем в меню Publish Settings > Flash > Actionscipt 2.0 Settings > и в поле "Export frame for classes" (номер кадра в который будет экспортироваться шрифт) вводим 10 (в данном случае). Внимание: для Flash 9 / CS3 / AS3 - мегаважное замечание от __etc!)

Этих действий должно быть достаточно, чтобы ваш прелоадер, размещенный ДО кадра экспорта, стартовал с нуля процентов.

3. Если, конечно, сам прелоадер не весит полмегабайта. Впрочем, даже для этих ситуаций есть выход: делаем прелоадер прелоадера, а затем - сам прелодер. Думаете, шучу? На практике приходится решать даже такие задачи, и ради одной цели: с точки зрения посетителя прелоадера быть не должно вообще.

У рецепта есть тонкости.

Важный момент: классы, компоненты, скинование

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

В результате может получиться такая модель: в 9-й кадр экспортируются все не-компоненты, а в 10-й -- компоненты, скины и классы.

Выглядит запутанно, но если вы будете держать в голове главную мысль -- "каждый объект должен быть экспортирован до свего первого использования" -- то вам станет значительно легче наводить порядок в проекте и при этом стартовать прелоадер с нуля процентов.

Звуки

Убрав для звука в библиотеке галочку "Export in first frame", и разместив звук в выбранном кадре экспорта (для чего вам может понадобиться еще один слой, назовем его, например "export sound assets"), зайдите в Properties этого кадра и выберите данный звук. А затем в поле Sync выберите значение Stop, чтобы он вдруг спонтанно на зазвучал - пишет -V-.

Теперь он контролируется, как любой другой залинкованный звук.

Шрифты

Шрифт экспортируется в тот кадр приложения, в котором впервые встречается текстовое поле, использующее этот шрифт - как верно замечает __etc.

Поэтому все мувиклипы, содержащие такие текстовые поля, должны экспортироваться не в первый кадр, а в выбранный вами кадр экспорта -- как было описано выше.

В ситуации же, когда вы хотите в прелоадере использовать тот самый шрифт, что и в основном приложении, можно воспользоваться советом от meanjerk:

"Касательно текстов - если в первом кадре нужно использовать текст, причем критично, чтобы он был таким же, что и в последующих кадрах, но с меньшим кол-вом символов, скажем это 11 Arial bold, то в первом кадре делаем этот текст не Arial, а скажем, Arial Cyr или Arial Greek. Если аналога шрифта не нашлось, придется попариться с дублированием шрифта в библиотеку (для использования в _последующих_ кадрах, а не в первом), что может увеличить общий вес ролика, но проблему все же решит."

Этим вопрос со шрифтами не исчерпан.

Ссылки

Все еще неясно? Почитайте здесь:

Важно! Пользователи Flash CS3, читайте заметку от Дениса Коляко: Экспорт классов во второй кадр и создание прелоадера во Flash CS3.

Posted by: Rost at 02:45 PM | Comments (8)

01.Август.2006

Идеальный прелоадер: ожидание загрузки

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

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

А ведь давно проект напрашивался, да? Ай да Нокс!

Posted by: Rost at 06:00 PM | Comments (2)

22.Июнь.2006

BitmapLibrary: загрузка и кэширование растра во Flash

Ив написал actionscript-библиотеку BitmapLibrary -- для загрузки и грамотного кэширования картинок (растровых данных).

На пресс-конференции, посвященной выходу библиотеки BitmapData, Иван заявил: "только написал, еще не тестил даже толком. но по идее всё что есть должно работать нормально. вот мож методы еще добавятся - заказывайте :)"

Также на конференции обсуждались вопросы импорта/экспорта свободного времени. Один из докладчиков заявил, что... стоп-стоп-стоп, это уже тема для другой новости!

Posted by: Rost at 11:22 PM | Comments (18)


++