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

Odyssus 09.09.2008 17:34

На сервере подгружаются не все картинки!!
 
Доброго всем дня!
Столкнулся с такой проблемой в флеше.
Нужно было сделать флешку, в которую нужно грузить на 6 мест рандомные картинки (на каждое место 6 картинок).
Размеры, и положения беру с хмл, вот кусок кода, как загружаю хмл, и картинки. Локально все нормально загружается, а на сервер вылаживаю, так не все картинки подгружает флешка...(вот выложена на сервере http://www.elenasearcy.com/test/) и каждый раз при перезагрузке флешки разные количества, такое ощущение, что не успеваtт подгружать или еще что-то, что не так делаю?

Код:

stop();
_global.r = new Array();
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(success){

var mcLoader = new MovieClipLoader();
var myListener = new Object();
myListener.onLoadInit = function(mc:MovieClip) {
.....
}
mcLoader.addListener(myListener);
        for(i=0;i<=5;i++){
                r[i] = random(6);
                _root.createEmptyMovieClip("img_"+i, _root.getNextHighestDepth());
                var mc = _root["img_"+i];
                mc._x = xml.firstChild.childNodes[i].attributes.X;
                mc._y = xml.firstChild.childNodes[i].attributes.Y;
                mcLoader.loadClip("/pic/"+i+"_"+r[i]+".jpg", mc);
        }
}
xml.load("rnd.xml");


Kuruki 09.09.2008 17:43

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

Odyssus 09.09.2008 18:00

Всегда вроде так подгружал кучу картинок в галерею и т.д., могло тормозить, но подгружало все, а тут выборочно. Это ж что, если мне потом надо будет 8 картинок одновременно, то 8 лоадеров делать, потом прописывать функционал каждого отдельно в onLoadInit ? :(

qazwsx 09.09.2008 18:03

Нет 100% не из за 1 лоадера:) Хотя смотря какой код в onLoadInit ладно не 100%. Вобщем либо используй совет Kuruki или же грузи в 1 лоадер но поочереди

Odyssus 09.09.2008 18:07

в onLoadInit сжал размеры мувиклипов всех к нужным размерам (грузятся файлы больше чем нужно), и три события mc.onRollOver(увеличивается каждый под маской в исходное, которое грузилось), mc.onRollOut(уменьшается), mc.onPress(переход на явафункцию)
как по очереди? тут в цикле, по очереди вроде и грузятся? за каждый проход цикла, по одному мувику, или я не понял что-то?

qazwsx 09.09.2008 18:12

Грузиш сначало первый клип. Затем в событии onLoadInit будеш вызывать загрузку последующего

chingachgoog 09.09.2008 18:12

А что говорят товарищи onLoadComplete и onLoadError?

Kuruki 09.09.2008 18:20

Цитата:

Это ж что, если мне потом надо будет 8 картинок одновременно, то 8 лоадеров делать, потом прописывать функционал каждого отдельно в onLoadInit ?
Нет. В функцию onLoadInit передается параметр mc, каждый лоадер будет передавать тот клип, в который он загружает картинку.

Odyssus 09.09.2008 18:48

2chingachgoog onLoadComplete говорит, что все загружено, onLoadError соотв. ошибок нет.

2Kuruki то есть типа так?
Код:

var mcLoader = new MovieClipLoader();
var mcLoader1 = new MovieClipLoader();
var mcLoader2 = new MovieClipLoader();
var myListener = new Object();
myListener.onLoadInit = function(mc:MovieClip) {
.....
}
mcLoader.addListener(myListener);
                r[0] = random(6);
                _root.createEmptyMovieClip("img_0", _root.getNextHighestDepth());
                img_0._x = xml.firstChild.childNodes[0].attributes.X;
                img_0._y = xml.firstChild.childNodes[0].attributes.Y;
                mcLoader.loadClip("/pic/img_0"_"+r[i]+".jpg", img_0);
}
mcLoader1.addListener(myListener);
                r[1] = random(6);
                _root.createEmptyMovieClip("img_1", _root.getNextHighestDepth());
                img_1._x = xml.firstChild.childNodes[1].attributes.X;
                img_1._y = xml.firstChild.childNodes[1].attributes.Y;
                mcLoader1.loadClip("/pic/img_1"_"+r[i]+".jpg", img_1);
}
mcLoader2.addListener(myListener);
                r[2] = random(6);
                _root.createEmptyMovieClip("img_2", _root.getNextHighestDepth());
                img_2._x = xml.firstChild.childNodes[2].attributes.X;
                img_2._y = xml.firstChild.childNodes[2].attributes.Y;
                mcLoader2.loadClip("/pic/img_2"_"+r[i]+".jpg", img_2);
}


Kuruki 09.09.2008 19:12

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

for (var i:Number = 0; i <= 6; i++) {
        var rand:Number = Math.round(Math.random() * 6);
        var mcLoader:MovieClipLoader = new MovieClipLoader();
        var container_mc:MovieClip = _root.createEmptyMovieClip('img_' + i, _root.getNextHighestDepth());
       
        container_mc._x = xml.firstChild.childNodes[i].attributes.X;
        container_mc._y = xml.firstChild.childNodes[i].attributes.Y;
       
        mcLoader.addListener(myListener);
        mcLoader.loadClip("/pic/img_" + rand + ".jpg", container_mc);
}



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

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