|
|
|||||
Регистрация: Mar 2015
Сообщений: 13
|
Прелоадер на Flash Builder
Всем привет, по этому вопросу есть масса инфы, но нет чёткого ответа.
А мне надо быстро сдавать проект, нет времени разбираться. Игра у меня сделана на Flash Builder. Подскажите как просто и быстро можно в нём реализовать прелоадер ? Желатено с кодом =) (Flash Pro использую только для загрузки в игру картинок) |
|
|||||
Заэмбеддить в свою новую сфв с прелоадером свою свф с игрой и показывать насколько она загрузилась.
__________________
Я заклинаю вас действовать иначе. |
|
|||||
Регистрация: Mar 2015
Сообщений: 13
|
А можно подробнее ? Сейчас я много чего испробовал и ничего не получается. А именно прелоадер делаю главным в настройки прописываю -frame appFrame Main но прелоадер чтото загружает а создавать Майн не хочет =( выдаёт ошибку.
Добавлено через 2 минуты Или может мне в Flash Pro сделать как то загрузочную оболочку ? |
|
|||||
Регистрация: Mar 2015
Сообщений: 13
|
Вообще ничего не получается
Неужели никто не делает прелоадеры ? |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Код в студию
|
|
|||||
Регистрация: Mar 2015
Сообщений: 13
|
package { import flash.display.DisplayObject; import flash.display.Shape; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.text.TextField; import flash.utils.getDefinitionByName; [SWF(frameRate="60", width="700", height="525", backgroundColor="0x000000")] public class Preloader extends Sprite { // Private private var _preloaderBackground:Shape private var _preloaderPercent:Shape; private var _checkForCacheFlag:Boolean = true; // Constants private static const MAIN_CLASS_NAME:String = "Cars"; public function Preloader() { trace("Preloader: Initialized.") addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); var txt:TextField = new TextField(); txt.textColor = 0xffffff; txt.x = 350; txt.y = 250; txt.text = "Loading"; addChild( txt ); } public function dispose():void { trace("Preloader: Disposing.") removeEventListener(Event.ENTER_FRAME, onEnterFrame); if (_preloaderBackground) { removeChild(_preloaderBackground); _preloaderBackground = null; } if (_preloaderPercent) { removeChild(_preloaderPercent); _preloaderPercent = null; } } // Private functions private function onAddedToStage(e:Event):void { trace("Preloader: Added to stage."); removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); stage.scaleMode = StageScaleMode.SHOW_ALL; stage.align = StageAlign.TOP_LEFT; addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event):void { if (_checkForCacheFlag == true) { _checkForCacheFlag = false; if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal) { trace("Preloader: No need to load, all " + root.loaderInfo.bytesTotal + " bytes are cached."); finishedLoading(); } else beginLoading(); } else { if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal) { trace("Preloader: Finished loading all " + root.loaderInfo.bytesTotal + " bytes."); finishedLoading(); } else { var percent:Number = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal; updateGraphic(percent); trace("Preloader: " + (percent * 100) + " %"); } } } private function beginLoading():void { // Might not be called if cached. // ------------------------------ trace("Preloader: Beginning loading.") _preloaderBackground = new Shape() _preloaderBackground.graphics.beginFill(0x333333) _preloaderBackground.graphics.lineStyle(2,0x000000) _preloaderBackground.graphics.drawRect(0,0,200,20) _preloaderBackground.graphics.endFill() _preloaderPercent = new Shape() _preloaderPercent.graphics.beginFill(0xFFFFFFF) _preloaderPercent.graphics.drawRect(0,0,200,20) _preloaderPercent.graphics.endFill() addChild(_preloaderBackground) addChild(_preloaderPercent) _preloaderBackground.x = _preloaderBackground.y = 10 _preloaderPercent.x = _preloaderPercent.y = 10 _preloaderPercent.scaleX = 0 } private function updateGraphic(percent:Number):void { // Might not be called if cached. // ------------------------------ _preloaderPercent.scaleX = percent } private function finishedLoading():void { var MainClass:Class = getDefinitionByName(MAIN_CLASS_NAME) as Class; if (MainClass == null) throw new Error("Preloader: There is no class \"" + MAIN_CLASS_NAME + "\"."); var main:DisplayObject = new MainClass() as DisplayObject; if (main == null) throw new Error("Preloader: The class \"" + MAIN_CLASS_NAME + "\" is not a Sprite or MovieClip."); addChild(main); dispose(); } } } Ещё в доп. аргёментах прописываю -frame appFrame Cars Но как только прелоадер начинает создавать класс Cars, то ничего не происходит При это тестовый класс создаётся Вопрос, из-за чего может не создаться класс Cars Ошибок там вроде нет, компилятор не ругается =) Добавлено через 5 минут Просто раньше Cars был по умолчанию и ошибок не возникало =/ |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Метод finishedLoading() отрабатывает без ошибок?
Цитата:
|
|
|||||
Следуя логике уважаемого Randi дорожный знак "Тупик" будет создавать тупик где-то на дороге, на которой он выставлен. Не могу согласиться с тем что прелоадер что-либо создает кроме того что касается прелоадера.
|
|
|||||
Регистрация: Mar 2015
Сообщений: 13
|
Он просто останавливает работу на том месте где я создаю главный класс игры. Я стал выводить флажки и последний флажок показался тот что перед созданием главного класса
При использовании вот этого метода var MainClass:Class = getDefinitionByName(MAIN_CLASS_NAME) as Class; MainClass равен null И если явно создавать главный класс то тоже ничего не получится |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Может быть вы имя не полное указываете?
|
Часовой пояс GMT +4, время: 06:23. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|