|
|
|||||
Регистрация: Aug 2014
Сообщений: 4
|
Проблема прелоадера
Здравствуйте. Помогите пожалуйста с прелоадером ( и лоадером заодно). Проблема в том, что он скорее всего работает, но при имитации загрузки он ничего не показывает (просто белый фон). После того, как белый фон проходит (видимо флешка загружается), промелькивает кадр прелоадера и после этого сразу же основная флешка. С чем это может быть связано? Скачивал примеры других людей, у них нормально имитируется загрузка, правда весь код в кадрах.
P.S. Делал классами на Adobe Flash 6. Последний раз редактировалось Lute; 18.08.2014 в 22:15. |
|
|||||
Регистрация: Jan 2011
Сообщений: 247
|
Здравствуйте, без предоставленного кода прелоудера на форуме мало кто сможет вам помочь
|
|
|||||
Регистрация: Aug 2014
Сообщений: 4
|
Извеняюсь, что сразу не выложил. Вот код:
Прелоадер: package bin { import flash.events.Event; import flash.display.MovieClip; import flash.text.TextField; public class Preloader extends MovieClip { //Загружено private var loaded:Number = 0; //Общий вес private var total:Number = stage.loaderInfo.bytesTotal; //Сколько процентов загружено private var percent:int = 0; public function Preloader():void { addEventListener(Event.ENTER_FRAME, Load); stop(); } private function Load(event:Event):void { loaded = stage.loaderInfo.bytesLoaded; percent = Math.floor(loaded / total * 100); //Вывод в текстовый блок status_txt.text = percent + "%"; //Прогресс-бар progress_bar_mc.scaleX = percent / 100; if (loaded >= total) { Completed(); } } //Завершение загрузки private function Completed():void { gotoAndStop(2); //Запускаем игру var _game:EXE = new EXE(); addChild(_game); removeEventListener(Event.ENTER_FRAME, Load); } } } package bin { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.display.SimpleButton; public class EXE extends Sprite { public static const RESOLUTION_HEITH:int = 480; //Размер поля по высоте public static const RESOLUTION_WIDTH:int = 840; //Размер поля по ширине public static const RESOLUTION_HEITH_HALF:int = 240; // Середина документа по высоте public static const RESOLUTION_WIDTH_HALF:int = 420; // Середина документа по ширине private var _game:Game_CORE; private var _editor:Editor; //Ссылка на класс редактора уровней private var _interface:InitInterfaceGame; /* Ссылки для кнопок */ private var _btnEditor:SimpleButton; private var _btnGame:SimpleButton; public function EXE() { // constructor code if(!stage) { addEventListener(Event.ADDED_TO_STAGE, init);//Инициализация данных игры } else { init(); } } public function init(event:Event = null):void { SWFProfiler.init(stage, this); // Кнопка "Game" _btnGame = new Game_btn(); _btnGame.x = RESOLUTION_WIDTH_HALF; _btnGame.y = RESOLUTION_WIDTH_HALF - 200; _btnGame.addEventListener(MouseEvent.CLICK, gameClick); addChild(_btnGame); // Кнопка "Editor" _btnEditor = new Game_editor_btn(); _btnEditor.x = RESOLUTION_WIDTH_HALF; _btnEditor.y = RESOLUTION_HEITH_HALF + 60; _btnEditor.addEventListener(MouseEvent.CLICK, editorClick); addChild(_btnEditor); } //Клик на кнопку "Game". private function gameClick(event:Event):void { _game = new Game_CORE(); addChild(_game); _interface = new InitInterfaceGame(); addChild(_interface); del(); } //Клик на кнопку "Editor". private function editorClick(event:Event):void { _editor = new Editor(); addChild(_editor); del(); } //Удаляет кнопки. private function del():void { removeChild(_btnGame); removeChild(_btnEditor); _btnGame.removeEventListener(MouseEvent.CLICK, gameClick); _btnEditor.removeEventListener(MouseEvent.CLICK, editorClick); _btnGame = null; _btnEditor = null; } } } |
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Если не ошибаюсь, то на момент показа прелоадера ваша флешка уже полностью загружена, соответственно прелоадер показывается и потом тут же исчезает. Смотрите в сторону [Frame(factoryClass)]
|
|
|||||
Регистрация: Aug 2014
Сообщений: 4
|
Благодарю за Ваш ответ, но насколько мне известно [Frame(factoryClass)] работает только в Developer`е. Я же работаю на полностью на Flash. Может я конечно ошибаюсь, но все-таки. Даже если проблема в этом, как во флеше ее опознать и пофиксить?
|
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
может я не понял что именно вам нужно, но во Flash когда запускаете ролики есть настройка скорости загрузки,можно уменшить и посмотреть будет ли чего, или как вариант закинуть что то тяжелое на кадр с игрой, вообще я раньше думал что загрузчик надо писать первым делом, но теперь думаю что правильней с начало игру написать,она станет тяжелей и тогда будет все хорошо.Думаю что просто у вас сейчас очень маленький вес,от этого флешка и не думает показывать загрузку
|
|
|||||
Регистрация: Aug 2014
Сообщений: 4
|
Забыл отписаться здесь, Sorry. Проблема решена. Зашел в свойства флешки и переназначил экспорт всех классов во второй кадр. Все заработало.
Может пригодится кому. Тему можно закрывать |
|
|||||
Можно и во Flash использовать [Frame(factoryClass)], если подключить Flex SDK в качестве компилятора. Я правда совсем не помню где это делается =(
__________________
...вселенская грусть |
Часовой пояс GMT +4, время: 14:43. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|