Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с созданием прелоадера (http://www.flasher.ru/forum/showthread.php?t=172599)

metsys 13.12.2011 18:20

Проблема с созданием прелоадера
 
Вот начитался кучу стате где описывают следующую структуру: В первом кадре пишем прелоадер, во втором код самой флешки. Но что делать если у меня код описан не в кадре а в Классе. Я так и не разобрался как сделать прелоадер. Помогите пожалуйста.

goodguy 13.12.2011 18:22

в чем конкретно проблема?

FieryWall 13.12.2011 18:38

Вложений: 1
Прелоадер в кадрах и в коде - разные стили.
Кодовый вариант давно реализован на FlashDevelop.

fish_r 13.12.2011 18:49

http://etcs.ru/blog/as3/cs3_preloader_videotutorial

http://etcs.ru/blog/as1/export_in_se...ame_flash_cs3/

metsys 13.12.2011 19:16

Цитата:

Сообщение от FieryWall (Сообщение 1051195)
Прелоадер в кадрах и в коде - разные стили.
Кодовый вариант давно реализован на FlashDevelop.

Эм, прошу прощение за нубство а как:
Код AS3:

// запустить прелоадер

?

Не совсем понял как вообще запускается класс Preloader.as

FieryWall 13.12.2011 20:04

Как правило прелоадер сопровождается графической визуализацией, как линия загрузки или что нибуть похожое. Запускаеться класс прелоадер автоматически, главное класс Main.as сделать точкой входа в программу

metsys 13.12.2011 20:19

Выглядит у меня всё примерно так:
[IMG]http://i28.***********/big/2011/1213/b3/f842b930473fc69b9587b190072a1bb3.jpg[/IMG]
код SlideGalleryClass:
Код AS3:

package
{
        import caurina.transitions.Tweener;
 
        import flash.display.DisplayObjectContainer;
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.events.TimerEvent;
        import flash.geom.ColorTransform;
        import flash.net.URLRequest;
        import flash.net.navigateToURL;
        import flash.text.TextField;
        import flash.utils.Timer;
 
        import metsys.php.AMFPHP;
 
 
        public class SlideGalleryClass extends Sprite
        {
                //--metsys--
                private var _amf:AMFPHP;
 
 
                //--CONST--
                private static const SLIDE_DISTANCE:int=0;
                private static const STAGE_WIDTH:int=834;
                private static const CRUST_WIDTH:int=48;
                private static const SLIDE_HEIGHT:int=198;
                private static const NUMBER_OF_SLIDES:int=6;
                private static const TRANSITION:String="easeOutQuart";
                private static const CHANGE_SLIDE_TIME:int=10;
                private static const STAGE_HEIGHT:int=198;
                //private static const CIRCLE_WIDTH:int=10;
 
 
                //--flash sprites--
                private var _slide:Array=new Array();
                private var _responds:Array=new Array();
 
                //--vars--
                private var _activeSlideIndex:int=5;
                private var timer:Timer=new Timer(CHANGE_SLIDE_TIME*1000, 1);
                private var _pageSliding:Boolean=false;
 
 
                public function SlideGalleryClass()
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
 
 
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        //здесь пишем запуск приложения
 
                        //дальше идёт код проги


Ну и класс прелоадера который вы мне скинули:
Код AS3:

package 
{
        import flash.display.DisplayObject;
        import flash.display.MovieClip;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.events.IOErrorEvent;
        import flash.events.ProgressEvent;
        import flash.utils.getDefinitionByName;
 
        /**
        * ...
        * @author aaaa
        */

        public class Preloader extends MovieClip
        {
 
                public function Preloader()
                {
                        if (stage) {
                                stage.scaleMode = StageScaleMode.NO_SCALE;
                                stage.align = StageAlign.TOP_LEFT;
                        }
                        addEventListener(Event.ENTER_FRAME, checkFrame);
                        loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
                        loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
 
 
                        // запустить прелоадер
                }
 
                private function ioError(e:IOErrorEvent):void
                {
                        trace(e.text);
                }
 
                private function progress(e:ProgressEvent):void
                {
                        var loaded:uint = e.target.bytesLoaded;
                        var total:uint = e.target.bytesTotal;
                        trace("me");
                        // loaded / total = [0...1]
                }
 
                private function checkFrame(e:Event):void
                {
                        if (currentFrame == totalFrames)
                        {
                                stop();
                                loadingFinished();
                        }
                }
 
                private function loadingFinished():void
                {
                        removeEventListener(Event.ENTER_FRAME, checkFrame);
                        loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);
                        loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError);
 
                        //уничтожить прелоадер
 
                        startup();//замена главного класа
                }
 
                private function startup():void
                {
                        var mainClass:Class = getDefinitionByName("SlideGalleryClass") as Class;
                        addChild(new mainClass() as DisplayObject);
                }
 
        }
}

но у меня класс Preloader не запускается, т.к. он даже не хочет трейсить
Код AS3:

trace("me");

Что я делаю не так?

ChuwY 13.12.2011 20:42

В вашем случае документ классом должен быть Preloader.

metsys 13.12.2011 20:53

да пробовал. но тогда ругается флеш:

ReferenceError: Error #1065: Переменная SlideGalleryClass не определена.
at global/flash.utils::getDefinitionByName()
at Preloader/startup()
at Preloader/loadingFinished()
at Preloader/checkFrame()

PainKiller 13.12.2011 21:10

вам 2 разные флешки нужны, одна флешка - прелоадер, другая - собственно то что вы грузите. Если же хотите в один файл все закинуть - в 1м кадре поместите мувиклип/спрайт приатаченный к классу прелоадер, во 2-й пихаете все остальное


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

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