#xml #actionscript-2 #moviecliploader
#xml #actionscript-2 #moviecliploader
Вопрос:
Я пытаюсь создать эскизы-сетку на основе XML. До сих пор я делал код для загрузки и размещения эскизов на сцене. Код, который я использую:
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
imgName = [];
image = [];
description = [];
thumbnails = [];
url = [];
_global.total = xmlNode.childNodes.length;
for (i=0; i<_global.total; i ) {
imgName[i] = xmlNode.childNodes[i].attributes.image_name;
image[i] = xmlNode.childNodes[i].attributes.path;
description[i] = xmlNode.childNodes[i].attributes.details;
thumbnails[i] = xmlNode.childNodes[i].attributes.path "tn_" xmlNode.childNodes[i].attributes.image_name;
url[i] ="#" xmlNode.childNodes[i].attributes.path xmlNode.childNodes[i].attributes.image_name;
thumbnailer(i);
}
} else {
trace("file not loaded!");
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad =loadXML;
xmlData.load("myImages.xml");
function thumbnailer(k){
loaded_counter=0;
total_thumbs = _global.total;
var container = thumbnail_mc.createEmptyMovieClip("th" k,thumbnail_mc.getNextHighestDepth());
var image = container.createEmptyMovieClip("img", container.getNextHighestDepth());
tlistener = new Object();
tlistener.onLoadInit = function(target_mc) {
target_mc.onRelease = function() {
getURL (url[k], "_self");
};
target_mc.onRollOver = function() {
target_mc._alpha=50;
};
target_mc.onRollOut = target_mc.onDragOut = function(){
target_mc._alpha=100;
};
loaded_counter ;
if(loaded_counter==total_thumbs){
build_grid();
}
};
image_mcl = new MovieClipLoader();
image_mcl.addListener(tlistener);
image_mcl.loadClip(thumbnails[k], "thumbnail_mc.th" k ".img");
}
Теперь, когда некоторые эскизы отсутствуют в папке, код застревает в строке: loaded_counter==total_thumbs , и материал для позиционирования ( build_grid() ) не может быть запущен.
У кого-нибудь есть идея, как пропустить отсутствующие эскизы?
Спасибо за любую помощь, Артур.
Комментарии:
1. Это безумие… Я не понимаю, как люди делают плавное позиционирование изображения в сетке с помощью MovieClipLoader. Когда я пытаюсь расположить изображения, не дожидаясь, когда все эскизы будут полностью загружены, затем при выполнении позиционирования, когда мышь находится в режиме прокрутки (масштабирование моих больших пальцев до 120%), мои изображения большого пальца перемещаются в другое положение, чем они должны быть : ( 🙁 . Как отключить события мыши при выполнении позиционирования и включить, когда процесс позиционирования завершен??
Ответ №1:
Вы должны добавить :
tlistener.onLoadError = function() {
loaded_counter ;
if(loaded_counter==total_thumbs){
build_grid();
}
}
И я думаю, вам следует протестировать :
if (loaded_counter >= total_thumbs)
Вы никогда не знаете…