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

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

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
По умолчанию Динамические имена переменных

Стлокнулся с такой проблемой:
В XML:
Код:
<objects>
	<region map="1" number="20">
		<bank type="1" label="Бабруйск">
			<desc>Информация 1</desc>
		</bank>
	</region>
	<region map="1" number="21">
		<bank type="1" label="Бабруйск1">
			<desc>Информация 2</desc>
		</bank>
	</region>
	<region map="1" number="22">
		<bank type="1" label="Бабруйск3">
			<desc>Информация 3</desc>
		</bank>
	</region>		
</objects>
Во флэше есть карта России (каждый регион - отдельный мувик с именем 1_mc, 2_mc, .... N_mc), также во флэше присутствует мувик flag_mc (флажок, с помощью которого нужно помечать нужные регионы).
Суть такова: флэш берет из xml данные регионов, размещает нужные флажки над мувиками-регионами (1_mc и т.п.), при нажатии на регион с флажком, выводится информация в текстовое поле out2_txt.
Проблема заключается в слюдующем, все флажки расставились как надо, нужные регионы подсвечены, но при нажатии на любой подсвеченый регион всегда показывается информация последнего (<desc>Информация 3</desc>) региона.
Вот код в AS:
Код:
var data_xml:XML = new XML();
data_xml.load("data.xml");
data_xml.ignoreWhite = true;
//
var region_map:Array = new Array();
var region_number:Array = new Array();
var bank_type:Array = new Array();
var bank_label:Array = new Array();
var description:Array = new Array(null);
//
echo = function (msg) {
	out2_txt.text += msg;
};
var j:Number = new Number();
var i:Number = new Number();
data_xml.onLoad = function(success) {
	if (success) {
		for (i = 0; i < this.firstChild.childNodes.length; i++) {
			out_txt.text += "Статус XML: " + data_xml.status + newline;
			region_map.push(data_xml.firstChild.childNodes[i].attributes.map);
			region_number.push(data_xml.firstChild.childNodes[i].attributes.number);
			bank_type.push(data_xml.firstChild.childNodes[i].childNodes[0].attributes.type);
			bank_label.push(data_xml.firstChild.childNodes[i].childNodes[0].attributes.label);
			description.push(data_xml.firstChild.childNodes[i].childNodes[0].childNodes[0].childNodes[0].nodeValue);
			_root[region_number[i] + "_mc"]._alpha = 100;
			//trace(i);
			//trace(description[i]);
			//out2_txt.text += description[i]+newline
			_root[region_number[i] + "_mc"].onRelease = function() {
					out2_txt.text += description[i] + newline;
					//trace(j);
				};
			flag_mc.duplicateMovieClip("flag" + i + "_mc", i);
			_root["flag" + i + "_mc"].city_txt.html = true;
			_root["flag" + i + "_mc"].city_txt.htmlText = bank_label[i];
			_root["flag" + i + "_mc"]._x = _root[region_number[i] + "_mc"]._x;
			_root["flag" + i + "_mc"]._y = _root[region_number[i] + "_mc"]._y;
		}
	} else {
		out_txt.text += "Произошла ошибка!";
	}
};
//
Нид хелп

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

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
попробуйте так:
Код:
_root[region_number[i] + "_mc"].i = i;
_root[region_number[i] + "_mc"].onRelease = function() {
	out2_txt.text += description[this.i] + newline;
};

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
Спасибо, работает
Целый день сегодня сижу, никак разобраться не мог))

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

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

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


 


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


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