Раздельная загрузка. loadMovie()

Прочитав все предыдущие статьи, вы, вероятно, уже захотели сделать свой собственный сайт. Необязательно, но, скорее всего. Что ж, вполне понятное желание. Однако, как его сделать более оптимально? Сделать все в одном файле SWF? Если у вас там будет растровая графика, то весить ваше творение будет очень много. К тому-же, обновление его потребует переделки всего проекта целиком и многократной закачки на сервер. Да и загружаться оно будет очень долго. Как этого избежать?

Ну вот, задал себе кучу вопросов. теперь надо на них отвечать…

Ответ простой. Надо поделить сайт на части и загружать их по отдельности. Давайте построим схему вашего воображаемого сайта. Из чего он состоит?

1. Общий загрузчик, который загружает все элементы сайта.
2. Заголовок сайта
3. Навигация. Куча кнопок, которые загружают страницы с разделами сайта
4. Собственно, разделы сайта, которых может быть даже больше, чем куча кнопок в навигации.

Итак, с главным определились. Теперь дело за малым – все это сделать. Допустим, мы сделали все по-отдельности. В разных проектах, получилось много разных файлов. Теперь это надо собрать.

Поможет нам в этом, команда «loadMovie()«. Она позволяет загружать внешние файлы из других файлов SWF. В скобках ей нужно указать два параметра: имя загружаемого файла и уровень, на который его загружать. С именем все понятно, а про уровни я расскажу подробнее.



Уровни

Уровни похожи на слои. Вы можете загружать разные SWF-файлы поверх друг друга. Первый загруженный файл располагается на нулевом уровне. Тот, который загружается поверх него, имеет уровень, номером выше. Какой именно – вы указываете сами. Всего их может быть 999, вроде. Короче, много :-)

Таким образом, мы встраиваем в HTML-страницу, файл-загрузчик. Ему присваивается номер уровня – 0, по умолчанию. Этот загрузчик загружает заголовок сайта на уровень 1, тоесть выше. Еще выше загружается файл с кнопками. Это уже уровень 2. Потом можно загрузить первый раздел сайта на уровень 3. Впоследствии, при помощи кнопок навигации, можно загружать на уровень 3, другие файлы с разделами сайта. Они будут заменять собой имеющиеся там.

Схематично, это будет выглядеть так:

Давайте теперь приступим к практике и создадим простой сайт с данной структурой. Создайте пустой проект с размерами 500х500 пикселей и сохраните его под именем «loader.fla»

Далее, создайте еще три, с такими-же размерами и сохраните их под именами: «head.fla«, «navigation.fla» и «chapter_01.fla«.

Первый нам пока не нужен, оставим его в покое. Откройте файл «head.fla» и нарисуйте в нем заголовок сайта. Сильно не старайтесь, доделаете красоту потом. Просто напишите в нем, что он заголовок. У меня получилось так:

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

Проекты «chapter«, как вы понимаете, нужно размножить, сделав из первого – четыре. Имена файлов у них будут, соответственно: «chapter_01.fla«, «chapter_02.fla«, «chapter_03.fla«, «chapter_04.fla«. Для порядка, можете разместить в них разную информацию, чтобы было понятно, что они разные.

Теперь начинается самое интересное. Мы будем это собирать.

Открывайте проект «loader.fla«, создавайте в нем новый слой и на первом и единственном кадре этого слоя пишите такой код:

// загружаем ролик "head.swf" на уровень 1
loadMovie("head.swf", 1);

// загружаем ролик "navigation.swf" на уровень 2
loadMovie("navigation.swf", 2);

// загружаем ролик "chapter.swf" на уровень 3
loadMovie("chapter_01.swf", 3);  

Таким образом, наш загрузчик «loader.swf«, который мы встроили в страницу, загружает на себя еще 3 файла, на разные уровни. Сайт готов.

Готов, да не совсем. Осталось сделать навигацию. Открываем проект «navigation.fla«, выделяем первую кнопку и пишем на ней следующий код:

on(release){

    loadMovie("chapter_01.swf", 3); } 

Этот код заставляет кнопку, при нажатии на нее (и отпускании), загружать ролик «chapter_01.swf» на уровень 3. То же самое нужно проделать и с остальными кнопками, изменив имя загружаемого ролика. Для кнопки «Chapter 2» это будет «chapter_02.swf«, для кнопки «Chapter 3» это будет «chapter_03.swf«, для «Chapter 4» – «chapter_03.swf«. Публикуем проект. Вот и все. Теперь все должно работать. У меня получилось вот так:

Get Adobe Flash player

Скачать проект целиком можно здесь.


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

VN:F [1.8.2_1042]
Rating: 9.8/10 (5 votes cast)
VN:F [1.8.2_1042]
Rating: +1 (from 1 vote)
Раздельная загрузка. loadMovie()9.8105

Leave a Reply

You must be logged in to post a comment.