Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Loader , PROGRESS (http://www.flasher.ru/forum/showthread.php?t=110887)

Nicolas Prof 10.04.2008 23:18

Loader , PROGRESS
 
Пробую грузить одним прелоадером. Но возникла проблема если во время загрузки, сразу вызвать загрузку другого контента. Получаю bytesLoaded намного больше.

Код:

private var _loader : Loader;
               

                public function LoadMore() {
                        //INIT
                        var offset:uint = 20;
                        var btn1:Sprite = button("test1");
                        var btn2:Sprite = button("test2");
                        btn1.x = btn2.x = offset;
                        btn1.y = offset;
                        btn2.y = 3 * offset;
                        _loader = new Loader();
                       
                        //DISPLAY LIST
                        addChild(btn1);
                        addChild(btn2);
                       
                        //LISTENERS
                        btn1.addEventListener(MouseEvent.CLICK, onClick);
                        btn2.addEventListener(MouseEvent.CLICK, onClick);
                       
                        //ACTIONS
                }
               
               

                private function button(str : String) : Sprite {
                        var btn : Sprite = new Sprite();
                        btn.graphics.lineStyle(0, 0x333333,0.4,true);
                        btn.graphics.beginFill(0xF6F6F7);
                        btn.graphics.drawRoundRect(0, 0, 100, 20, 10, 10);
                        btn.graphics.endFill();
                        btn.name = str;
                        var tf : TextField = new TextField();
                        tf.selectable = false;
                        tf.autoSize = TextFieldAutoSize.LEFT;
                        tf.text = str;
                        tf.x = (btn.width - tf.width) * 0.5;
                        tf.y =( btn.height - tf.height) * 0.5;
                       
                        btn.mouseChildren = false;
                        btn.buttonMode = true;
                        btn.addChild(tf);
                       
                        return btn;
                }
               
                private function loadIMG(path : String) : void {
                        var url : URLRequest = new URLRequest(path + ".jpg");
                        try{
                                _loader.unload();
                                trace("UNLOAD");
                        }catch (e : TypeError) {
                                //nothing
                        }
                        try{
                                _loader.close();
                                trace("CLOSE STREAM");
                        }catch (e : TypeError) {
                                //nothing
                        }catch (e : Error){
                                //nothing
                        }
                        _loader.load(url);
                        _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
                        _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
                }
               
                /*
                * EVENTS
                */
                private function imageLoading(e : ProgressEvent) : void {
                        trace("LOADED:",e.bytesLoaded," TOTAL:", e.bytesTotal);
                }

                private function imageLoaded(e : Event) : void {
                        _loader.x = 150;
                        addChild(_loader);
                }
                private function onClick(e : MouseEvent) : void {
                        loadIMG(e.currentTarget.name);
                }

и в итоге даже получается вот такая картина
http://i.piccy.kiev.ua/i2/ff/c6/aac9...38b01f97a.jpeg

userk 11.04.2008 09:44

http://www.bytearray.org/?paged=2
тут вот с одним непонятки , а Вы всё и сразу:)

Nicolas Prof 11.04.2008 11:12

В общем насколько я понял, в моем примере, это баг Flash IDE.
В том числе в Flash IDE не срабатывает close().

ulik 11.04.2008 12:24

Можете мне объяснить, зачем вы каждый раз делаете:
Код:

...
addChild(_loader);
...

Сделайте в конструкторе один раз:
Код:

_loader = new Loader();
addChild(_loader);


userk 11.04.2008 16:59

Просмотрел рабочие коды, в которых не было проблем
может поможет
Код:

var loader:Loader = new Loader;
//        addChild(loader); ( один раз добавляем)
loader.load(new URLRequest(ImgNameTr));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
function ioErrorHandler(event:IOErrorEvent):void {
            trace("Unable to load image: " + ImgNameTr);
           
                        }//ioErrorHandler
//----------------------
 function completeHandler(event:Event):void {
        // trace ( 'completeHandler ==================' );
        var imgB:Bitmap = new Bitmap;
        var ldr:Loader = Loader(event.target.loader);
        imgB = Bitmap(ldr.content);
...


Nicolas Prof 11.04.2008 18:07

2ulik
верно, приведенный листинг не последний, а микс :)


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

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