Уроки Flash: Создание загрузчика и прелоадера

Источник: demiart
Chibis

Шаг 1 (прелоадер)

Создайте документ размером 540х400
Нарисуте прямоугольник длинной 100 и шириной 10. Затем нажмите F8 и перевидите в мувиклип.
В Instance name укажите название polosa

Теперь создайте динамической текстовое поле и обзавите его pole

Дальше выделите ваш клип "polosa" и текстовое поле "pole" и снова нажмите F8 и опять переведите в мувиклип. Теперь в библиотеке нажмите на этот клип правой кнопкой мыши и выберете меню Linkage, в первом поле Identifier введите preloader. И удалите с главной сцены клип который создали, Но чтобы в библиотеке он остался)

Шаг 2 (кнопки)

нарисуйте 4 кнопки и в Instance name для каждой напишите kar_1, kar_2, kar_3, kar_4 соответственно и тоже расположите их на главной сцене вашей флешки, затем выделите их все мышкой и нажмите F8 выберете Movie clip и в Instance name укажите для него but_mc

Шаг 3 (код)

Ну и самое простое на главной сцене в первом и единственном кадре вставте следующий код:

Code


var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());//создание клипа контейнера куда будут грузиться фотки
container._x = 150;//расположить контейнер по оси х
container._y = 50;//расположить контейнер по оси у
container._xscale = 50;//поменять масштаб контейнера
container._yscale = 50;//поменять масштаб контейнера
var mcLoader:MovieClipLoader = new MovieClipLoader(); //создание загрузчика который будет грузить фотки в контейнер
var listener:Object = new Object();//создание слушателя для загрузчика

//функция котороя проверяет ошибки на правильность имени файла
listener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
/*
function(target_mc:MovieClip, errorCode:String, httpStatus:Number), где
target_mc:MovieClip - цель (клип к которму будет применена данная функция в нашем случае контейнер
errorCode:String - выдает номер ошибки
httpStatus:Number - выдает номер ошибки, при этом проверяя нахождени самого файла
*/
var format:TextFormat = new TextFormat();//формат текста для текстового поля которое будет сообщать об ошибке
format.color = 0x00FF66;//цвет текста
format.size = 14;//размер текста
format.font = "_sans";//гарнитура шрифта
   _root.createTextField("my_txt", 10, 0, 0, 300, 200); //создание текстового поля
my_txt.setNewTextFormat(format);//применение формата к текстовомо полю
my_txt.autoSize = true;//автоматическое раширение текстового поля под рамер текста
my_txt.text = "Файл ненайден, проверте правильность имени файла!"; //текст который будет отображаться при выводе ошибки
my_txt._x = (Stage.width - my_txt._width) / 2;//расположение текстового поля
my_txt._y = (Stage.height - my_txt._height) / 2;//расположение текстового поля
}
//функция котороя проверяет ошибки на правильность имени файла

//функция котороя проверяет началась ли загрузка картинки
listener.onLoadStart = function(target_mc:MovieClip) {
but_mc._visible=false //прячем контейнер с кнопками
my_txt.removeTextField();//если загрузка началась то удаляем текстовое поле
   _root.attachMovie("preloader", "preloader", this.getNextHighestDepth());//аттачим мувиклип прелоадер
preloader._x = Stage.width/2;//расположение прелоадера
preloader._y = Stage.height/2;//расположение прелоадера
};
//функция котороя проверяет началась ли загрузка картинки

//функция котороя постоянно проверяет загрузку к контейнер
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
/*
function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number)
target_mc:MovieClip - цель (клип к которму будет применена данная функция в нашем случае контейнер
bytesLoaded:Number - количество байт загруженный в данный промежуток времени
bytesTotal:Number - общее количество байт всей картинки
*/
   preloader.pole.text = int(bytesLoaded/bytesTotal*100)+"%";//отображения процесса загрузки в текстовом поле
 preloader.polosa._xscale = 100*bytesLoaded/bytesTotal;//отображения процесса загрузки (полоса которая "растет"))
}
//функция котороя постоянно проверяет загрузку к контейнер

//функция котороя проверяет окончание загрузки картинки в контейнер
listener.onLoadInit = function(target:MovieClip):Void {
 but_mc._visible=true //показываем контейнер с кнопаками
 removeMovieClip(preloader);//удаляем клип прелоадер
}
//функция котороя проверяет окончание загрузки картинки в контейнер
//
mcLoader.addListener(listener);//привязываем слушатель к загрузчику

///////////////////////////////////////////////////////////////////////////////
//функции нажития кнопок
but_mc.kar_1.onPress = function() {
mcLoader.loadClip("antalya.jpg", container);//привязываем загрузчик к контейнеру и указываем имя файла картинки
}
but_mc.kar_2.onPress = function() {
mcLoader.loadClip("bodrum.jpg", container);//привязываем загрузчик к контейнеру и указываем имя файла картинки
}
but_mc.kar_3.onPress = function() {
mcLoader.loadClip("istanbul.jpg", container);//привязываем загрузчик к контейнеру и указываем имя файла картинки
}
but_mc.kar_4.onPress = function() {
mcLoader.loadClip("такого файла нет.jpg", container);//привязываем загрузчик к контейнеру и указываем имя файла картинки
}


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=18174