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

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

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

Регистрация: May 2008
Сообщений: 8
По умолчанию Переменная перезаписывается в цикле

Первый опыт работы с XML, посему не пинайте.
Проблема вот в чем, загружаем ХМЛ, разбираем по запчастям в массив. Затем строится своеобразное меню, так вот не могу догнать как же назначить пунктам меню ссылки из массива. Пытаюсь записать ее в переменную при прохождении цикла, а она перезаписывается. В общем проще показать код))) Вот он

Код AS1/AS2:
 
var myXML:XML = new XML();    
 myXML.ignoreWhite = true;    
 myXML.load("test.xml"); 
 myXML.onLoad = function(success) {
if (success) {
 createArray();
} else {
result_text.text = "Данные небыли загружены";
}
};
 
 
 
 var list:Array = new Array(); 
 
 function createArray() {    
 for (n=0; n<myXML.firstChild.childNodes.length; n++) { 
    var image = myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue;    
    var name = myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue;    
	list[n]=[[image],[name]];
 
	} 
 
	createMenuList();
 
 } 
 
 function createMenuList(){
	var spacing:Number = 30;
	for (var i=0;i<list.length;++i){
 
	          	var picName:String = list[i][0]; //вот тут определяется искомая переменная.
		var name1:String = "name_mc"+i+"_mc";
		var y:Number = i*spacing;
		list_mc.attachMovie("name_mc",name1,i);
		list_mc[name1].temp = picName;
		list_mc[name1]._y=y;
 
              //А вот тут вот начинается самая засада. когда происходит передача переменной в функцию, она почемуто во всех кнопках оказывается одинаковая.		
		list_mc[name1].button_bt.onPress = function() {
			showPicture(picName);
			}
 
	}
 
 }
 
 
 function showPicture (href){
	 test_txt.text = href; //Соответственно здесь и выводится результат. 
 }
Подозреваю что неверно работаю с переменной в цикле, но как правильно ума не приложу. Заранее спасибо.

Старый 08.06.2009, 21:43
stuff вне форума Посмотреть профиль Отправить личное сообщение для stuff Найти все сообщения от stuff
  № 2  
Ответить с цитированием
stuff

Регистрация: Jun 2009
Сообщений: 16
определять переменные надо до цикла
а в цикле - использовать
и ещё
Код AS1/AS2:
list_mc.createEmptyMovieClip(name1, this.getNextHighestDepth());
перед AttachMovie

Старый 09.06.2009, 00:22
Юрис вне форума Посмотреть профиль Отправить личное сообщение для Юрис Найти все сообщения от Юрис
  № 3  
Ответить с цитированием
Юрис

Регистрация: May 2008
Сообщений: 8
хех... не помогает. Все также перезаписывает...

Старый 09.06.2009, 01:38
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS1/AS2:
showPicture(list_mc[name1].temp);
А Вы любитель загадок =)

for (n=0; n<myXML.firstChild.childNodes.length; n++)
...
for (var i=0;i<list.length; ++i)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 09.06.2009 в 01:44.
Старый 09.06.2009, 10:12
Юрис вне форума Посмотреть профиль Отправить личное сообщение для Юрис Найти все сообщения от Юрис
  № 5  
Ответить с цитированием
Юрис

Регистрация: May 2008
Сообщений: 8
А что тут не так? ))) сначала делаю массив из ХМЛ, потом разбираю этот массив...

Код AS1/AS2:
showPicture(list_mc[name1].temp);
Результат тот же. Уже всю голову сломал.


Последний раз редактировалось Юрис; 09.06.2009 в 10:17.
Старый 09.06.2009, 11:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
list[n]=[[image],[name]];
list[] - массив, элементами которого являются массивы [], в которых по два элемента, представляющих из себя массивы, в которых лежат по одному элементу image и name соостветственно.
Вы ничего не перемудрили?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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