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

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

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

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

На сцене два мувика, при клике по любому из них должна меняться соответствующая клипу переменная L0 или L1
Как мне внутри обработчика onPress изменить переменную "L"+i
Код:
for (var i = 0; i<2; i++) {
	this["L"+i] = 1;
	trace("L"+i+" = "+this["L"+i]);
	this["mc"+i].onPress = function() {
		this._parent["L"+i] *= -1;//в этом месте i уже равно 2
		trace("L"+i+" = "+this._parent["L"+i]);
	};
}

Старый 14.10.2008, 14:37
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 2  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
попробуйте вот так
Код:
for (var i = 0; i<2; i++) {
	this["L"+i] = 1;
	this["L"+i]. id = i;
	trace("L"+i+" = "+this["L"+i]);
	this["mc"+i].onPress = function() {
		this._parent["L"+i] *= -1;//в этом месте i уже равно 2
		trace("L"+i+" = "+this._parent["L"+i]+"this.id"+this.id);
	};
}
может это вам поможет.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
this["L"+i] = 1;
Это что?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.10.2008, 14:43
Dear.D вне форума Посмотреть профиль Отправить личное сообщение для Dear.D Найти все сообщения от Dear.D
  № 4  
Ответить с цитированием
Dear.D

Регистрация: May 2008
Сообщений: 66
может я не так объяснил. Клипу mc0 соответствует переменная L0 (клипу mc1 - L1). При клике по клипу его переменная должна менять знак. L0 была равна 1, должна стать -1.

this["L"+i] = 1;
это объявление двух переменных L0, L1 и присвоение значения обеим переменным 1.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
А зачем их хранить в переменной вне клипа mcХ?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: May 2008
Сообщений: 66
Цитата:
Сообщение от iNils Посмотреть сообщение
А зачем их хранить в переменной вне клипа mcХ?
да в общем-то незачем, а как их поместить внутрь клипов?
наверно так this["mc"+i]["L"+i] = 1;
а как тогда обратиться к этой переменной внутри обработчика?

Старый 14.10.2008, 14:51
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 7  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
вот немного доработанное рещение
Код:
for (var i = 0; i<2; i++) {
	this["L"+i] = 1;
	this["mc_"+i]. id = i;
	trace("L"+i+" = "+this["L"+i]);
	this["mc_"+i].onPress = function() {
		this._parent["L"+this.id] *= -1;//в этом месте i уже равно 2
		trace("L"+this.id+" = "+this._parent["L"+this.id]);
	};
}

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
for (var i = 0; i < 2; i++) {
	var mc = this["mc" + i];
	mc.l = 1;
	trace (mc._name + ".l = " + mc.l);
	mc.onPress = function () {
		this.l *= -1;
		trace (this._name + ".l = " + this.l);
	};
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.10.2008, 15:05
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 9  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
вот еще вариант
Код:
for (var i = 0; i<2; i++) {
	this["mc"+i]. id = i;
	this["mc"+i].onPress = function() {
		this["L"+this.id] = (this["L"+this.id]>0)? -1:1;
		trace("L"+this.id+" = "+this["L"+this.id]);
	};
}

Старый 14.10.2008, 15:36
Dear.D вне форума Посмотреть профиль Отправить личное сообщение для Dear.D Найти все сообщения от Dear.D
  № 10  
Ответить с цитированием
Dear.D

Регистрация: May 2008
Сообщений: 66
а у iNilsа проще :-)
все равно спасибо

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

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

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


 


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


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