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

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

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

блогер
Регистрация: Nov 2003
Адрес: 117593, Россия, Москва
Сообщений: 211
Записей в блоге: 2
Отправить сообщение для ~~~ с помощью ICQ Отправить сообщение для ~~~ с помощью AIM Отправить сообщение для ~~~ с помощью Yahoo Отправить сообщение для ~~~ с помощью Skype™
Question Динамическое построение функции (вопрос к реал.знающим AS1 - 2)

Динамическое построение функции (вопрос к реал.знающим AS1 - 2)

Код:
for (var i = 0; i<libsreg.firstChild.childNodes.length; i++) {
	libName[i] = libsreg.firstChild.childNodes[i].attributes.name;
	libLink[i] = libsreg.firstChild.childNodes[i].attributes.link;
	libExt[i] = libsreg.firstChild.childNodes[i].attributes.ext;
	//trace(libName[i]+":"+libLink[i]+":"+libExt[i]);
	/////////////////////////////////////
	set("onMenuClick_"+libName[i], function () {
		stat_txt.textColor = 0;
		det = libLink[i];
		ext = libExt[i];
		mdm.prompt(libName[i]+" Library loaded");
		// значения 'libName[i]' в сгенерённой функции остаются именно 'libName[i]', а не присвоенное libName[i] значение во время создания функции.
	});
}
Что делаем:
В цикле генерим кучу callback-функций взависимости от содержания XML.
Каждая нода = навая функция.

На выходе реально получаем правильно названные функции, типа:
onMenuClick_BLABLA() , при соответствующем атрибуте ноды XML:
<k name="BLABLA" link="libs/BLABLA.dll" ext=".bla"></k>...
ОДНАКО:
Внутри функции значения, типа 'libName[i]' в сгенерённой функции остаются именно 'libName[i]', а не присвоенное libName[i] значение во время создания функции. Т.к. когда далее она вызывается зачения libName[i] равны undefined или последнему созданному в цыкле, это естественно "не катит"!

Суть вопроса:
Как это обойти?
Как добиться того чтоб внутри уже скенерённой функции сохранялась строка вида не ' ext = libExt[i]; ' , a ' ext = "статическое значение"; ' , где "статическое значение" = статическое значение, полученное, при создании функции, из соответствующей ноды>атрибута> xml.

Заранее благодарю.
С уважением Александр Козловский.
__________________
WebLog:http://flashimp.ru
IDE: http://Visuvio.com


Последний раз редактировалось iNils; 24.07.2006 в 20:06.
Создать новую тему   Часовой пояс GMT +4, время: 19:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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