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

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

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

Регистрация: Aug 2005
Адрес: Польша
Сообщений: 376
Записей в блоге: 3
Отправить сообщение для Punk T-34 с помощью Skype™
По умолчанию Сделать клип кликабельным при использовании duplicateMovieClip

Привет.
У меня есть XML, который парсится с помощью XPath4AS2 и на основе данных дублируются клипы для менюшки.
Код приобретает такой вид:
Код AS1/AS2:
my_xml.onLoad = function(success:Boolean):Void  {
	if (success) {
		var Categories:Array = XPath.selectNodesAsString(my_xml, "products/category/@name");
		var Items:Array = XPath.selectNodesAsString(my_xml, "products/category/item");
		var FrstItems:Array = XPath.selectNodesAsString(my_xml, "products/category/item[1]");
		var Pics:Array = XPath.selectNodesAsString(my_xml, "products/category/item/@img");
                var Links:Array = XPath.selectNodesAsString(books, "products/category/item/@link");
		var totalCat = Categories.length;
		var totalItems = Items.length;
		for (i=0; i<totalItems; i++) {
			container.icon.duplicateMovieClip("icon"+i,container.getNextHighestDepth());
			position = iconTotalWidth*i;
			loader = new MovieClipLoader();
			loader.loadClip(Pics[i],container["icon"+i]);
			container["icon"+i]._x = position;
		}
	} else {
		result_ta.text = "Error connecting to server.";
	}
};
my_xml.load("products.xml");
и так дальше.

Вопрос: как дублирующимся клипам с именами ["icon"+i] присвоить соответствующие ссылки из массива Links:Array?

Пытался внутри цикла "for" прописать вот такое:
Код AS1/AS2:
container["icon"+i].onRelease = function() {
	getURL(Links[i], "_self");
};
но это не работает
Заранее спасибо.
__________________
Швейцарский нож в дизайне и рекламе:
• NORDSKILL •

Старый 05.12.2008, 16:25
artem_fs вне форума Посмотреть профиль Отправить личное сообщение для artem_fs Найти все сообщения от artem_fs
  № 2  
Ответить с цитированием
artem_fs

Регистрация: Jul 2008
Сообщений: 257
Код AS1/AS2:
var temp_mc = container.icon.duplicateMovieClip("icon"+i,container.getNextHighestDepth());
Код AS1/AS2:
temp_mc.tempUrl = Links[i];
Код AS1/AS2:
temp_mc.onRelease = function() {
	getURL(this.tempUrl, "_self");
};
вроде так работать должно)


Последний раз редактировалось artem_fs; 05.12.2008 в 16:30.
Старый 05.12.2008, 16:29
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 3  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
в цикле:
Код:
container["icon"+i].id=i
в обработчике:
Код:
getURL(Links[this.id], "_self");

Старый 05.12.2008, 16:36
Punk T-34 вне форума Посмотреть профиль Отправить личное сообщение для Punk T-34 Посетить домашнюю страницу Punk T-34 Найти все сообщения от Punk T-34
  № 4  
Ответить с цитированием
Punk T-34
 
Аватар для Punk T-34

Регистрация: Aug 2005
Адрес: Польша
Сообщений: 376
Записей в блоге: 3
Отправить сообщение для Punk T-34 с помощью Skype™
нет, к сожалению, ни один из вариантов не работает. Кнопки даже не становятся активными (курсор не меняется на пальчик).
__________________
Швейцарский нож в дизайне и рекламе:
• NORDSKILL •

Старый 05.12.2008, 17:01
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Не удивительно.
Вы пытаетесь навесить onRelease в клип в который грузите картинки. Естественно, после старт загрузки, содержимое клипа, в том числе и onRelease удаляются.
Назначать надо либо после загрузки, либо грузить в клип-контейнер внутри клипа с событием.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.12.2008, 17:25
Punk T-34 вне форума Посмотреть профиль Отправить личное сообщение для Punk T-34 Посетить домашнюю страницу Punk T-34 Найти все сообщения от Punk T-34
  № 6  
Ответить с цитированием
Punk T-34
 
Аватар для Punk T-34

Регистрация: Aug 2005
Адрес: Польша
Сообщений: 376
Записей в блоге: 3
Отправить сообщение для Punk T-34 с помощью Skype™
что-то не работает.
Хотя, я не уверен, что правильно использую onLoadComplete:
Код AS1/AS2:
//---------------------------- загрузка картинки
loadListener.onLoadComplete = function():Void  {
	trace("loaded");
	container["icon"+i].id = i;
	trace(container["icon"+i].id);
	container["icon"+i].onRelease = function() {
		getURL(Links[i], "_self");
	};
};
var loader = new MovieClipLoader();
loader.addListener(loadListener);
loader.loadClip(Pics[i],container["icon"+i]);
//---------------------------- конец загрузки картинки
могли бы вы подсказать правильный синтаксис?
__________________
Швейцарский нож в дизайне и рекламе:
• NORDSKILL •

Старый 05.12.2008, 17:40
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 7  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
onLoadComplete дает параметром функции ссылку на загрузившийся клип. На эту ссылку и надо вешать обработчик (как я написал, с this.id)

Старый 05.12.2008, 17:43
Punk T-34 вне форума Посмотреть профиль Отправить личное сообщение для Punk T-34 Посетить домашнюю страницу Punk T-34 Найти все сообщения от Punk T-34
  № 8  
Ответить с цитированием
Punk T-34
 
Аватар для Punk T-34

Регистрация: Aug 2005
Адрес: Польша
Сообщений: 376
Записей в блоге: 3
Отправить сообщение для Punk T-34 с помощью Skype™
Спасибо! Я нашёл способ — обходной путь:
в родительском клипе container создал ещё один дублирующийся клип ("clicker"+i), которому назначил ссылки и координаты, соответствующие клипам с картинками ("icon"+i). Теперь они действуют независимо.
Ещё раз спасибо за помощь!

P.S. Для меня это гораздо проще, потому что я всё равно ничего не понял про onLoadComplete. У меня синтаксис хромает — я начинающий.
P.P.S. Я заметил, что в CS4 при нажатии F1 вызывается онлайновая справка флэша. А что в новой версии нет локальной справки, как в CS3?
__________________
Швейцарский нож в дизайне и рекламе:
• NORDSKILL •


Последний раз редактировалось Punk T-34; 05.12.2008 в 17:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 16:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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