![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Проблема такова - Есть XML такой структруры:
<flats folder="prev/" folder1="photo/"> <d0 name="Аэропорт" pic="0.jpg" folder="prev/001/" folder1="photo/001/" etag="1" tip="сталинка"> <img foto="001.jpg" /> <img foto="002.jpg" /> <img foto="003.jpg" /> </d0> <d1 name="Цветной бульвар" pic="1.jpg" folder="prev/002/" folder1="photo/002/" etag="1" tip="сталинка"> <img foto="001.jpg" /> <img foto="002.jpg" /> <img foto="003.jpg" /> <img foto="004.jpg" /> <img foto="005.jpg" /> </d1> и т.д. </flats> Базы не знаю,поэтому так) Есть несколько Combo boxов при кликанье на которые,в строку запоминаются параметры поиск,без проблем показываются превьюшки (pic="...jpg"),дальше идет функция которая должна загружать foto,то бишь детей превьюшек,вот она та и глючит - при шелчке на любую превьюшку грузит foto только последней,как я понимаю у мня там проблема с циклом.Вот код: var arr:Array = new Array();
var Arr:Array = new Array();
//* * * * * * * * * * * * * X M L * * * * * * * * * * * * * * * * * * * * * * * * *
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
myNod = myXML.firstChild;
arr = myNod.childNodes;
Folder = myNod.attributes.folder1;
};
myXML.load("flats.xml");
//
function Parsing(txt:String, k:Number) {
for (j=0; j<arr.length; j++) {
var myNode:XMLNode = arr[j];
switch (k) {// тут выбирается по какому параметру искать
case 0 :
o = myNode.attributes.etag;// по этажу
break;
case 1 :
o = myNode.attributes.tip;// по типу
break;
case 2 :
o = myNode.attributes.name;// по метро
break;
}
pic = myNode.attributes.pic;
folder = myNode.attributes.folder;
folder1 = myNode.attributes.folder1;
f2 = myNode.childNodes;
var url:String = Folder+pic;
if (o.indexOf(txt) != -1) {
if (o != undefined) {
Arr.push(url);
for (n=0; n<Arr.length; n++) {
var dot:MovieClip = target.createEmptyMovieClip("dot"+n, n);
//тут всякая лабутень с загрузкой
dot.pic = Folder+pic;
dot.f = f2;
dot.folder = folder;
dot.folder1 = folder1;
dot.onPress = function() {
pokaz(this.f,this.folder,this.folder1);//а вот и проблема - вместо ожидаемых
};// индивидуальных,для каждого dot - f,folder и folder1 - они все время равны параметрам последнего
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.loadClip(Arr[n],pic_mc);//находит и грузит превьюхи отлично и без проблем
}
}
}
}
Arr = [];
}
//function pokaz(//***//все старательно грузит и формирует,но так как получает URL для загрузки одно и тоже ,то и грузит одно и тоже
pic = myNode.attributes.pic; folder = myNode.attributes.folder; folder1 = myNode.attributes.folder1; f2 = myNode.childNodes; ass.push(myNode.childNodes) ass1.push(myNode.attributes.folder) ass2.push(myNode.attributes.folder1) //* * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * Что посоветуете,а то у меня уже голова уже опухла от этих циклов.
__________________
Я просто добрый шутник. |
|
|||||
|
чтоб не пухла разбейте служную функцию на более простые и делайте задачи по этопно
// поиск квартир согласно фильтру
function find_flats(txt:String, filter:Number) {
var results = new Array();
// тут выбирается по какому атрибуту искать
switch (filter) {
case 0 : attribute = 'etag'; break;
case 1 : attribute = 'tip'; break;
case 2 : attribute = 'name'; break;
default: return;
}
// цыкл по квартирам
var node = myXML.firstChild.firstChild;
while(node){
// поиск текста в заданном атрибуте
if( node.attributes[attribute].indexOf(txt) != -1) results.push(node);
node = node.nextSibling;
}
// возвращаем ссылки на найденные квартиры
return results;
}
// показываем привьюхи и назначем кнопки на фулсайз
function show_pics(flats){
// цыкл по квартирам
for( var i = 0; i < flats.length; i++ ){
var node = flats[i].firstChild;
// цыкл по фоткам
while(node){
trace(node.attributes['foto']);
node = node.nextSibling;
}
}
}
и пишите более читаемый xml зачем разбивать пути на кучу составляющих? задавайте атрибутам логические имена согласно английскому языку. квартирам также как а картинкам задавайте одинаковые имена тегов. Последний раз редактировалось Mnilionic; 28.10.2008 в 03:00. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
to _etcs:Thanks
OK?
__________________
Я просто добрый шутник. Последний раз редактировалось scarbo; 28.10.2008 в 14:47. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|