Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Загрузка и присоединение картинок (http://www.flasher.ru/forum/showthread.php?t=73827)

silin 24.04.2006 14:32

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

import flash.display.BitmapData;
class PicLoader {
        var images=[],loaders=[];
        var length,intrv;
        var addListener,broadcastMessage;
        function PicLoader(){
                AsBroadcaster.initialize(this);
        }
        function load(urls){
                images=[];
                length=urls.length;
                for(var i=length;i--;){
                        var l=loaders[i]=_root.createEmptyMovieClip('tmp'+i,_root.getNextHighestDepth());
                        l._x=2000;
                        l.loadMovie(urls[i]);
                }

                intrv=setInterval(this,"loadControl",50);
        }
        function loadControl(){
                for(var i=length,bl=0,bt=0;i--;){
                        bt+=loaders[i].getBytesTotal();
                        bl+=loaders[i].getBytesLoaded();
                }
               
                if(bt>0 && bl==bt){
                        clearInterval(intrv);
                        for (var i=length;i--;) {
                                var l=loaders[i];
                                images[i]=new BitmapData(l._width,l._height);
                                images[i].draw(l);
                                l.removeMovieClip();
                        }
                       
                        broadcastMessage('onPicsLoad');
                       
                }else {
                        broadcastMessage('onProgress',bl,bt);
                }
        }
}

смотрим-проверяем
Код:

var picsUrl=["p0.jpg","p1.jpg","p2.jpg"];//url картинок
var pl=new PicLoader();
pl.addListener(this);
function onProgress(l,t){
        trace(l+"/"+t);//здесь вывод информации о загрузке
}
function onPicsLoad(){
        trace("все..");
        //дальлше только для проверки: по клику будем аттачить по очереди катринки в рут
        var n=0;
        onMouseUp=function(){
                _root.attachBitmap(pl.images[n++],0);
                n%=pl.length;
        }
}
////////////////
pl.load(picsUrl);//запускаем загрузку
//Ctrl-Enter 2 раза


Vasik1 24.04.2006 14:56

Да, решение хорошее... Только почему-то не понятно: когда просто просмотр нажимаешь - пишет:
0/0
все..
И по нажатию не показывает картинок...
Ну я думаю это мелочь, так как по любому будет загружаться не мгновенно!

А решение onProgress(l,t), мне понравилось :)

Vasik1 24.04.2006 14:57

Слушай, а что означает n%=pl.length;? в часности (n%)

silin 24.04.2006 15:06

>>пишет 0/0 ..И по нажатию не показывает картинок...
видимо условия if(bt>0 && bl==bt) недостаточно..
>>то означает n%=pl.length;?
n=n%pl.length


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

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