создаем документ ActionScript3.0, и создам 2 кадра и 3слоя. Кадр первого слоя растягиваем на все кадры, и рисуем на нем на курсор. Нажимаем F8, преобразовываем его в фрагмент ролика(MovieClip) и ставим точку регистрации в левом верхнем углу. Называем его cursor, он должен находится на всех кадрах. Называем этот слой Cursor и больше не трогаем.
Второй слой называем Prelouder. Здесь будет проводится основная работа. Проверяем, каждый из 2 кадров это отдельный пустой ключевой кадр. Рисуем прямоугольник, жмем F8. Теперь определяемся, если мы хотим что бы полоса увеличивалась сразу в обе стороны, ставим точку регистрации в центре, а если хотим чтобы она увеличивалась из левого угла к правому, ставим точку регистрации в левом верхнем углу. Называем этот прямоугольник preLouder и размещаем поудобнее на сцене.Под ним делаем динамическое поле под названием tf. Второй кадр называем compl. В первом кадре слоя Prelouder пишем код:
Код: Выделить всё
import flash.events.*;//импортируем нужные нам элементыthis.stop();//останавливаем воспроизведение stage.showDefaultContextMenu = false;//прячем стандартные пункты контекстного меню addEventListener(Event.ENTER_FRAME, Update);// Описание функции Updatefunction Update(e : Event):void { var bytesLoaded:Number = stage.loaderInfo.bytesLoaded; // перемнная, хранящая число загруженых байт нашего приложения var bytesTotal:Number = stage.loaderInfo.bytesTotal; // переменная, хранящая обьём приложения в байтах var s:String = ""; // обьявление пустой строчной перемнной, в которой будут храниться проценты загрузки var percent:Number = 0; // обьявление пустой числовой переменной if (bytesTotal>0){ // ждем когда приложение узнает свой настоящий размер percent = Math.floor(bytesLoaded/bytesTotal*100); //Считаем сколько процентов уже загрузилось и округляем до целых s = percent+"%" // Прибавляем к числу знак % preLouder.width = percent*4; //длинна прямоугольника пропорциональна равна числу загружнных байтов //длинна прямоугольника в 100% = 400, подставляете как вам удобно tf.text = s; //показываем в поле tf проценты загрузки } // проверяем, полностью ли загрузилось приожение if (bytesLoaded == bytesTotal) {// если полностью, то удаляем вызов функции removeEventListener(Event.ENTER_FRAME, Update);// и переводим воспроизведение куда вам надо gotoAndStop('compl'); } }
Третий слой называем Fon и ставим туда фоновую картинку.
Теперь создаем файл ActionScript, называем его Mous пишем в него:
Код: Выделить всё
package { import flash.events.MouseEvent; import flash.display.MovieClip; import flash.ui.Mouse; public class Mous extends MovieClip { public function Mous() { stage.addEventListener(MouseEvent.MOUSE_MOVE, eventListener); } public function eventListener(e:MouseEvent):void { e.updateAfterEvent();//присваиваем нашему курсору события мыши Mouse.hide();//прячем настоящий курсор cursor.x = mouseX;//курсор равен положению мыши по X cursor.y = mouseY;//курсор равен положению мыши по Y } }}
А теперь как это сделать вместе с контейнером.
Создаем еще один слой wrapper, тащим его на самую верхушку и еще один кадр, который ставим в самый перед. Опять же проверяем, все кадры в этом слое отдельные пустые ключевые кадры Наш кадр с прелоадером называем Preloading. В первый кадр слоя wrapper пишем код:
Код: Выделить всё
var wrapper: Object;this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);function onAddedToStage(e: Event): void { stage.dispatchEvent(new Event(Event.DEACTIVATE)); stage.dispatchEvent(new Event(Event.ACTIVATE)); //переключаем события, тем самым полностью включая все события в контейнере wrapper = Object(this.parent.parent); gotoAndPlay('preloading');//при завершении загрузки контейнера переходим к прелоадеру wrapper.addEventListener('onApplicationAdded', function(e: Object): void { });}
Че у нас вышло: http://lewka.at.ua/preloader.swf(прелоадер виден буквально 3секунды)
Исходник : http://lewka.at.ua/preloader.rar