Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 28.10.2008, 00:54
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 1  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: 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>
В нем по атрибутам этаж,тип и т.д. делается поиск во Флеш(IndexOf(),
Базы не знаю,поэтому так)
Есть несколько 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)
и указывать дальше не
Код:
dot.pic = Folder+pic;
dot.f = f2;
dot.folder = folder;
dot.folder1 = folder1;
Код:
dot.f=ass[1]
dot.folder=ass1[1]
dot.folder1=ass2[1]
,то все работает,а стоит только указать
Код:
dot.f=ass[n]
dot.folder=ass1[n]
dot.folder1=ass2[n]
,то опять все глючит.
//* * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * *
Что посоветуете,а то у меня уже голова уже опухла от этих циклов.
__________________
Я просто добрый шутник.

Создать новую тему   Часовой пояс GMT +4, время: 18:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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