Просмотр полной версии : Прелоадер Галереи
Werewolfe
24.01.2007, 17:33
Сделал галерею, и для каждой фотографии прелоадер, но когда открываеш страницу, прелоадеры показывают общую загрузку, а надо каждой отдельно и при нажатии на маленькое фото чтобы загружалось большое что я пишу не так?
вопрос актуален.
так же интересует полностью програмный прелоадер для превьюшек.
все свойства превью, в моем случае, передаються через object, а именно:
...
initObj.onEnterFrame = pldrConstructor;
this.attachMovie("gallery_thumbMC", "tn"+i, this.getNextHighestDepth(), initObj);
function pldrConstructor():Void{
this.createEmptyMovieClip('ploader', this.getNextHighestDepth());
var bt:Number = this.getBytesTotal();
var bl:Number = this.getBytesLoaded();
if(bl < bt){
this.ploader.lineStyle(3, 0xFFFFFF, 100);
this.ploader.moveto(5, 5);
this.ploader.lineto(Math.round(5+30*bl/bt),5);
this.ploader.endFill();
}else ploader.removeMovieClip();
}
у меня не работает :(
JudgeFog
24.01.2007, 18:25
this.createEmptyMovieClip('ploader',
Все с одинаковыми именами?
JudgeFog? ну так какая разница?
в каждом последующем 'tn'+i идет ploader
то есть 'tn'+i.ploader
в каждом из них свой.
Werewolfe
24.01.2007, 19:42
Я извиняюсь, а что мне написать, чтобы заработало корректно?
ну у меня пока что заработало так:
парсинг с xml и создание превьюшек?
var i:Number = 0;
for (var aNode:XMLNode = xmlData.firstChild.firstChild; aNode != null; aNode = aNode.nextSibling) {
//trace(aNode);
var obj:Object = new Object();//тут храню всю информацию мувике
obj.thumb = aNode.attributes.thumb;
obj.img = aNode.attributes.img;
obj.onEnterFrame = ldr;
obj.createEmptyMovieClip = createEmptyMovieClip("ploader", this.getNextHighestDepth());
obj._x = 100 * i + (5 * i);
obj._y = 10;
obj.onPress = onP;
this.attachMovie("mcCont", "k"+i, this.getNextHighestDepth(), obj);
eval('k'+i).cont.loadMovie(aNode.attributes.thumb);//етим подгружаю в каждый мувик соотв. рисунок
++i;
}
далее сам прелоадер:
function ldr():Void{
var t:Number = this.cont.getBytesTotal();
var l:Number = this.cont.getBytesLoaded();
var label:TextField = this.createTextField("label", 1, 10, 10, 100, 20);
label.text = Math.floor(l / t * 100).toString();
//trace(Math.floor(l / t * 100));
}
щас вот ето показывает в % соотношении.
но вот дело в том что ето все через onEnterFrame, и оно выполняеться постоянно. если б мона было как-то его после 100% удалить чтоб оно не вызывалось... тогда было б круто!
или какие есть альтернативы??!
Werewolfe
25.01.2007, 18:10
А как этот вариант заставить работать с прелоадером, т.е. каждая картинка после нажатия кнопки сначала показывал процент загрузки, следом уже картинку, а то в сети после нажатия 28 сек пустой экран, потом картинка, использую MovieClipLoader.onLoadProgress(в исходнике нет) всё равно, в клипе вообще нет изменений
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.