Форум 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=137412)

hobbit1 12.03.2010 19:16

проблема с загрузкой
 
Добрый день, у меня возникла проблема:
создаю массив с юрликами на картинки которые надо загрузить в swf ку, а потом эти юрлики отправляю на загрузку, но почемуто первые 20 не грузятся, а оставшиеся 30 отлично грузятся, с чем это может быть связано, если по отдельности грузить то все нормально.

Snut 12.03.2010 19:24

Покажите как грузите

hobbit1 12.03.2010 19:27

Код AS3:

for (var d:Number=0; d<arrWork.length; d++)
                        {
                                var Pic1:LoadedPic=new LoadedPic(arrWork[d]);
                                arrPicq[d]=Pic1;
 
}

Код AS3:

package load
{
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.IOErrorEvent;
        import flash.events.ProgressEvent;
        import flash.net.*;
 
        public  class LoadedPic extends Sprite
        {
                public var all:Number=0;
                public var loadNum:Number=0;
                public var arrPic:Array=new Array();
                public var allComplite:Boolean=false;
                public var pic:Sprite;
                public var URL:String;
                public function LoadedPic(url:String)
                {                //URL=url;
                        var imageLoader:Loader = new Loader();
                        var theURL:String = url;
                        var imageRequest:URLRequest = new URLRequest(url);
                    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplite);
                    imageLoader.contentLoaderInfo.addEventListener(Event.INIT, Init);
                    imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
                    imageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, tryAgane);
 
                    imageLoader.load(imageRequest);
 
                        function onComplite(event:Event):void
                        {
                                addChild(imageLoader.content);
                                allComplite=true;
                        }   
                    function Init(event:Event):void
                    {
                            all=event.target.bytesTotal;
                            trace (all+'  '+url)
                        }
                        function progress(event:ProgressEvent):void
                    {
                                loadNum=event.target.bytesLoaded;
                        }
                        function tryAgane():void
                        {
                                trace ("tryAgane")
                        }
                }
        }
}

корявенько немного я знаю

Snut 12.03.2010 19:35

для начала вложенные функции вынесите а

Добавлено через 3 минуты
И кстати, загрузка - штука асинхронная, я бы ждал комплита от предыдущего и начинал грузить следующий. Попробуйте так, последовательность - никому не повредит.

hobbit1 12.03.2010 19:46

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

Snut 12.03.2010 19:50

вас 2 секунды сильно спасет?

hobbit1 13.03.2010 15:53

после того как функции вынес, все стало работать, спасибо большое)))

mikhailk 13.03.2010 22:05

В последовательной загрузке никакого выигрыша нет.
Заводим переменную totalLoading, которая равна 0 в начале, потом увеличиваем ее на один при каждом старте загрузки и вычитаем по одному при каждом комплите загрузки. Если она стала равно нулю (в функции обработки комплита) - все загрузки закончились. У меня так в некоторых приложениях по 20 файлов параллельно грузится и ничего.

А вот обработчики действительно надо выносить в отдельные функции.


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

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