Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прелоадер на Flash Builder (http://www.flasher.ru/forum/showthread.php?t=211566)

Randi 22.09.2015 16:14

Прелоадер на Flash Builder
 
Всем привет, по этому вопросу есть масса инфы, но нет чёткого ответа.
А мне надо быстро сдавать проект, нет времени разбираться.
Игра у меня сделана на Flash Builder.
Подскажите как просто и быстро можно в нём реализовать прелоадер ?
Желатено с кодом =)
(Flash Pro использую только для загрузки в игру картинок)

Bletraut 22.09.2015 17:55

Заэмбеддить в свою новую сфв с прелоадером свою свф с игрой и показывать насколько она загрузилась.

Randi 23.09.2015 18:25

А можно подробнее ? Сейчас я много чего испробовал и ничего не получается. А именно прелоадер делаю главным в настройки прописываю -frame appFrame Main но прелоадер чтото загружает а создавать Майн не хочет =( выдаёт ошибку.

Добавлено через 2 минуты
Или может мне в Flash Pro сделать как то загрузочную оболочку ?

Randi 27.09.2015 23:51

Вообще ничего не получается
Неужели никто не делает прелоадеры ?

illuzor 28.09.2015 00:09

Код в студию

Randi 28.09.2015 00:13

Код AS3:

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 был по умолчанию и ошибок не возникало =/

udaaff 28.09.2015 00:48

Метод finishedLoading() отрабатывает без ошибок?

Цитата:

прелоадер чтото загружает а создавать Майн не хочет =( выдаёт ошибку.
Какую ошибку?

djyamato 28.09.2015 01:04

Следуя логике уважаемого Randi дорожный знак "Тупик" будет создавать тупик где-то на дороге, на которой он выставлен. Не могу согласиться с тем что прелоадер что-либо создает кроме того что касается прелоадера.

Randi 28.09.2015 11:01

Цитата:

Сообщение от udaaff (Сообщение 1187386)
Метод finishedLoading() отрабатывает без ошибок?
Какую ошибку?

Он просто останавливает работу на том месте где я создаю главный класс игры. Я стал выводить флажки и последний флажок показался тот что перед созданием главного класса

При использовании вот этого метода
var MainClass:Class = getDefinitionByName(MAIN_CLASS_NAME) as Class;
MainClass равен null

И если явно создавать главный класс то тоже ничего не получится

udaaff 28.09.2015 11:14

Может быть вы имя не полное указываете?


Часовой пояс GMT +4, время: 00:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.