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

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

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

Регистрация: Jan 2007
Сообщений: 49
По умолчанию Запутался цикле

Делаю небольшой механизм который берёт данные из ХМЛ, в соответствии с ними, атачит нужные клипы, ну и как следствие нужно потом клипы удалять...
вот тут то и возникла загвоздка!
Код:
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("myxml.xml");
myXML.onLoad = function(success) {
	if (success == true) {
		_global.chislo_gorodov = myXML.firstChild.childNodes[0].childNodes.length;
		var nod:XMLNode = myXML.firstChild.childNodes[0];
		id = new Array();
		c_status_id = new Array();
		for (i=0; i<chislo_gorodov; i++) {
			c_status_id = nod.childNodes[i].attributes.status_id;
			sid = Number(c_status_id);
			if (sid == 2) {
				mcg = _root.attachMovie("zapis_mc01", "zapis_mc"+i, i, {_x:nod.childNodes[i].attributes.ix, _y:nod.childNodes[i].attributes.iy});
			}
			if (sid == 1) {
				mcg = _root.attachMovie("zapis_mc02", "zapis_mc"+i, i, {_x:nod.childNodes[i].attributes.ix, _y:nod.childNodes[i].attributes.iy});
			}
			exit_but.onPress = function() {
				   _root.gotoAndStop(1);
					zapis_mc1.removeMovieClip();
			
			};
			mcg.onRelease = function() {
				fi = substring(this._name, 9, -1);
				n = Number(fi);
				c_x = nod.childNodes[n].attributes.ix;
				c_y = nod.childNodes[n].attributes.iy;
				inf_x = inf_y=c_name=nod.childNodes[n].attributes.name;
				c_info = nod.childNodes[n].attributes.info;
				c_status = nod.childNodes[n].attributes.status_id;
				var inf_x = c_x;
				var inf_y = c_y;
				mtv = _root.attachMovie("inf", "inf", 999, {_x:inf_x, _y:inf_y});
				mtv.header.onPress = function() {
					startDrag(_root.mtv);
				};
				mtv.header.onRelease = function() {
					stopDrag();
				};
				mtv.exit_but.onPress = function() {
					mtv._visible = false;
				};
			};
		}
	}
};
по одному клипы удаляюся, а если пишу цикл то почему он почему то не работает(..
Код:
exit_but.onPress = function() {
				_root.gotoAndStop(1);
                                                 for (i=0; i<chislo_gorodov; i++) 
                                                    {
				zapis_mc[i].removeMovieClip();
                                                     }
			
			};
ТОварищи если не трудно взгляните,.. может вам удастца высмотреть тут какую нить вопиющую ошибку из-за которой не деляются клипы...


Последний раз редактировалось neFX; 20.01.2008 в 05:04.
Старый 20.01.2008, 04:46
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 2  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
а упростить никак?

Старый 20.01.2008, 04:53
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 3  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
а почему ты, собственно говоря, создавая клипы с динамическими именами, удаляешь всегда клип "zapis_mc1"???
наверное, стоит при удалении также формировать имя с помощью счетчика. как считаешь?

Старый 20.01.2008, 05:07
neFX вне форума Посмотреть профиль Отправить личное сообщение для neFX Найти все сообщения от neFX
  № 4  
Ответить с цитированием
neFX

Регистрация: Jan 2007
Сообщений: 49
насчёт упростить,.. хз сам бы с удовольствием, но ароде всё нужно)
насчёт всё время 1 клип удаляю,..
в 1 примере там удаляю потому что так работает!
во втором просто описался,.. (щас поравил),.. но это нерабочий вариант!
вот исходник если интересно ссылка


Последний раз редактировалось neFX; 20.01.2008 в 05:15.
Старый 20.01.2008, 13:26
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 5  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
вместо этого:
Код:
sid = Number(c_status_id);
if (sid == 2) {
	mcg = _root.attachMovie("zapis_mc01", "zapis_mc"+i, i);
}if (sid == 1) {
	mcg = _root.attachMovie("zapis_mc02", "zapis_mc"+i, i);
}
написать так:
Код:
sid = Number(c_status_id);
mcg = _root.attachMovie("zapis_mc0"+"sid", "zapis_mc"+i, i);
неудаляется по всей видимости потому что не видит chislo_gorodov

Старый 20.01.2008, 14:02
neFX вне форума Посмотреть профиль Отправить личное сообщение для neFX Найти все сообщения от neFX
  № 6  
Ответить с цитированием
neFX

Регистрация: Jan 2007
Сообщений: 49
MrPoma: вообщем можно конечно поморочится и упростить ИФ, но мне как то так привычней чесно говоря..

по поваду того что не работает: chislo_gorodov и вравду невидит, однако ставлю в цикле вмето этой переменной число например 3 зарания трэйсом узнав значение этой переменной, и точно так же ничего не происходит...
Код:
exit_but.onPress = function() {
				_root.gotoAndStop(1);
				for (i=0; i<3; i++) {
					zapis_mc[i].removeMovieClip();
				}
			};
щас подумаю почему не видно переменной..

Старый 20.01.2008, 14:16
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 7  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
ну потрейсите zapis_mc[i]. их он тоже судя по всему не видит

Старый 20.01.2008, 15:35
neFX вне форума Посмотреть профиль Отправить личное сообщение для neFX Найти все сообщения от neFX
  № 8  
Ответить с цитированием
neFX

Регистрация: Jan 2007
Сообщений: 49
Дауж вы правы,..
попробывал выгружать бокс где лежат все эти клипы...
Код:
myXML.onLoad = function(success) {
	if (success == true) {
		_global.chislo_gorodov = ...;
		var nod:XMLNode = ...;
		id = new Array();
			
		c_status_id = new Array();
		for (i=0; i<chislo_gorodov; i++) {
			c_status_id = nod.childNodes[i].attributes.status_id;
			sid = Number(c_status_id);
			if (sid == 2) {
				mcg = _root.attachMovie("zapis_mc01", "zapis_mc"+i,i, {...});
			}
			if (sid == 1) {
				mcg = _root.attachMovie("zapis_mc02", "zapis_mc"+i,i, {...});
			}
			
			};
			trace(mcg);
		}
	}
};
выдаёт все атаченные клипы...
_level0.zapis_mc0
_level0.zapis_mc1
_level0.zapis_mc2


пробую выгрузить mcg,.. выгружает только последний...

Код:
myXML.onLoad = function(success) {
	if (success == true) {
		_global.chislo_gorodov = ...;
		var nod:XMLNode = ...;
		id = new Array();
			
		c_status_id = new Array();
		for (i=0; i<chislo_gorodov; i++) {
			c_status_id = nod.childNodes[i].attributes.status_id;
			sid = Number(c_status_id);
			if (sid == 2) {
				mcg = _root.attachMovie("zapis_mc01", "zapis_mc"+i,i, {...});
			}
			if (sid == 1) {
				mcg = _root.attachMovie("zapis_mc02", "zapis_mc"+i,i, {...});
			}
			
                               exit_but.onPress = function() {
				trace(mcg);
				mcg.unloadMovie();
				_root.gotoAndStop(1);
				
			};
			
		}
	}
};
и трэйс выдаёт
_level0.zapis_mc2


с чем это может быть связано?

Старый 20.01.2008, 15:52
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 9  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
ну дык вы же присваиваете переменной mcg мувики в цикле. после первой итерации _level0.zapis_mc1, после второй соответственно _level0.zapis_mc2. т.е. вы перезаписываете ее значение.
обращайтесь к ним так:
Код:
_root['zapis_mc'+i]

Старый 20.01.2008, 16:07
neFX вне форума Посмотреть профиль Отправить личное сообщение для neFX Найти все сообщения от neFX
  № 10  
Ответить с цитированием
neFX

Регистрация: Jan 2007
Сообщений: 49
всё работает спасибо большое!!

если кому интересно конечный вариант вот..
Код:
			exit_but.onPress = function() {
				_root.gotoAndStop(1);
				for (i=0; i<chislo_gorodov; i++) {
					_root['zapis_mc'+i].removeMovieClip();
				}
			};

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

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

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


 


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


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