Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прогресс загрузки(Loading) (http://www.flasher.ru/forum/showthread.php?t=112458)

FireBreezy 28.05.2008 15:05

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

сейчас упрощенно код выглядит так:
Код:

package
{
        public class Main extends Sprite
        {
                public function Main()
                {
                        stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
                        stage.addEventListener(ProgressEvent.PROGRESS, onProgress );
                }

                private function onProgress(event:ProgressEvent):void
                {
                        logo.htmlText = "Progress:"+event.bytesLoaded;
                }
               
                private function onEnterFrame(event:Event):void
                {
                        ...
                }
        }
}

Ктото может мне пояснить механизм отображения загрузки, и как это делаеться?

ladon 28.05.2008 15:17

stage.addEventListener(ProgressEvent.PROGRESS, onProgress );
эта команда добавляет на сцену обработчик события класса ProgressEvent.
тип подписываемого события PROGRESS
когда оно происходит то вызывается функция onProgress
которая получает в качестве параметра объекта класса ProgressEvent
в этом объекте хранится много всяких данных из которых самое интересное
bytesLoaded
Команда
logo.htmlText = "Progress:"+event.bytesLoaded;
пишет видимо в текстовое поле logo строчку с процентами загрузки.

или надо еще подробнее? Ж)

FireBreezy 28.05.2008 15:19

Дело в том, что onProgress совсем невызывается :(

ladon 28.05.2008 15:22

а собственно что ты загружаешь?
или ты хочешь сделать прелоадер самого себя?

FireBreezy 28.05.2008 15:24

2ladon прелоадер самого себя :) это вообще возможно?

ladon 28.05.2008 15:38

посмотри в документацию в сторону LoaderInfo

FireBreezy 28.05.2008 16:28

Млин чтото прогрес как был мертвым так мертвым и остался (((

BlooDHounD 28.05.2008 22:57

this.loaderInfo.addEventListener

FireBreezy 29.05.2008 14:03

Я наверное дурной... из под среды прогрес срабатывает 1-н раз... а по сети даже разок несработал. Есть у когонибудь минимальный пример как делаеться этот прогрес бар!!!
Если честно то непонимаю как флешка может недогрузившись сама себя индицировать... Я наверно чтото неправильно делаю.

BlooDHounD 29.05.2008 15:16

http://www.google.ru/search?q=прелоадер+AS3

FireBreezy 30.05.2008 14:19

Вот ещё пару глупых вопросов которые меня мучат:
Подгрузчик из 2-х кадров отмел сразу, поскольку сам скрипт у меня весит 100кил, что составляет пол флешки...
Посему пришел опробовать вариант когда один флеш ролик подгружает другой. но почемуто после подгрузки у меня вылетает ерорчик говорящий что один флеш мувик неможет подгрузить другой. Это както лечиться?

fljot 30.05.2008 15:06

что за еррор? покажите код

FireBreezy 30.05.2008 15:37

Вот такой код:

Код:

package
{
        import flash.display.*;
        import flash.events.*;
        import flash.text.*;
        import flash.utils.*;
        import flash.net.URLRequest;


        public class swfLoader extends Sprite
        {
                //variables
                private var srcLoader:Loader;
                private var myText:TextField;

                public function swfLoader()
                {
                        myText = new TextField();
                        addChild(myText);

                        srcLoader = new Loader();
                        srcLoader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, onProgress );
                        srcLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, onComplete );

                        //начинаем загрузку
                        //srcLoader.load( new URLRequest( String("view3dx.swf") ) );
                        srcLoader.load( new URLRequest( String(loaderInfo.parameters["url"]) ) );
                }

                private function onProgress(event:ProgressEvent):void
                {
                        myText.htmlText = "Progress:" + event.bytesLoaded;
                }
               
                private function onComplete(event:Event):void
                {
                        addChild( srcLoader.content );
                }
        }
}

И вот такой ерор:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Main$iinit()

Видимо чето ему в моей флешке ненравиться :(

BlooDHounD 30.05.2008 16:08

ну вообще-то ошибка в классе Main

FireBreezy 30.05.2008 16:52

Ошибка в том что я в Main обращаюсь к stage. А его при такой подгрузке просто несуществует. Как можно решить проблему? Как достучатся до stage? А то мне жизнено необходимо иметь следующие ф-ии:


stage.scaleMode = StageScaleMode.NO_SCALE;
stage.showDefaultContextMenu = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown );
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove );

badun 30.05.2008 17:17

Event.ADDED_TO_STAGE

FireBreezy 30.05.2008 17:23

2badun Что мне это даст? Если у меня есь мувик A, он создает мувик Б(который ничего незнает о А) Как достучаться или заменить stage в мувике Б?

badun 30.05.2008 17:29

Цитата:

Сообщение от FireBreezy (Сообщение 742744)
Как достучаться или заменить stage в мувике Б?

Достучаться по Event.ADDED_TO_STAGE. Так понятнее?

FireBreezy 31.05.2008 12:25

Спасибо
 
Спасибо всем ко выслушивал и помогал мне неучу :victory: похоже к понедельнику у меня чтото таки получиться. А сейчас осталось пару организационных вопросов.
1. Не хотелось бы чобы основную флешку ктото вскрыл, поэтому юзаю галочку "Защита от импорта". Но при этом не могу подгрузить её со своего загрузчика. Это какнибудь решаеться?
2. В настройках есть странный параметр доступ. Он может быть "Локальный" ИЛИ "Сетевой". Какой выставлять предпочтительнее и почему?


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

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