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

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

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

Регистрация: Aug 2005
Адрес: Москва
Сообщений: 825
Отправить сообщение для ffffff с помощью ICQ
zelik. для этого нужно вынести mc_1 из mc. если тебе нужно чтобы они двигались синхронно то скажи, я или кто-то другой тебе код подскажут.
__________________
мой блог http://www.madie.ru

Старый 03.05.2009, 20:30
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 12  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
но ведь для _alpha работает то, что написал mooncar. Пишем в mc_1
Код AS1/AS2:
var alp:Number = 70;
this.onRelease = function() {
this._parent._alpha = alp;	
this._alpha = 100*100/alp;
}

Старый 03.05.2009, 20:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 13  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Можно попробовать воспользоваться методами класса Color, но в вашем случае проще создать внутри mc мувик, расположив его так, чтобы он не закрывал слой с mc_1, покрасить его, например в черный, назначить ему исходную альфу в 0, и менять его прозрачность, например, до 30 - 80 вышеуказанным методом.
Получится затемнение всего, что слоями ниже mc на основной сцене, и внутри него ниже слоя с mc_1. А прозрачность можно менять плавно с пом. цикла.


Последний раз редактировалось mooncar; 03.05.2009 в 21:00.
Старый 03.05.2009, 21:02
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 14  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
У меня есть карта, по которой перемещаюсь. На ней лежат мувики (вложенные в карту). Хотелось бы, чтобы при нажатии на мувик, затемнялось все (карта и другие мувики), кроме "активизированного" мувика
Тогда уж так, раз у вас карта, думается объектов много и каждому отдельно присваивать имена, долгое дело))
Код AS1/AS2:
var alp:Number = 30;
mc.mc_1.onRelease = function() {
	mc._alpha = alp;
	for (var i in mc) {
		if (typeof mc[i]) {
			mc[i]._alpha = 100*100/alp;
		}
	}
};

Старый 03.05.2009, 21:20
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 15  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Спасибо, mooncar. Я, наверное, на _alpha остановлюсь. Ведь у меня будет много мувиков. Как же этим дополнительным темным слоем закрывать карту и все мувики, кроме одного? Или можно передвигать программно под него слой с нужным мувиком ?

Добавлено через 1 минуту
KiL33, спасибо. Но при нажатии мне нужно оживлять только один мувик.

Старый 03.05.2009, 21:28
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 16  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
С учетом решения KiL33, будет вот так:
Код AS1/AS2:
var alp:Number = 30;
for (var j in mc) {
mc[j].onRelease = function() {
	mc._alpha = alp;  //саму карту - опрозрачиваем
	for (var i in mc) {
		if (typeof mc[i] && this == mc[i]) {  //если нажат мувик внутри, ему подтягиваем альфу до нормальной видимости
			mc[i]._alpha = 100*100/alp;
		} 
		else {
		mc[i]._alpha = alp;	//остальные тоже опрозрачиваем
		}
	  } 
};
}
Пиши этот единственный код в кадре, где лежит карта mc. Тогда и именовать внутри не надо ничего, пихай сколько хочешь объектов, и вытягиваться будет видимость только "активизированного", нажатого, опрозрачивая всё остальное, кроме него внутри и сам mc.
Ну и восстановление прозрачностей самой карты сам уж продумай, алгоритмы твои неизвестны.

Добавлено через 3 минуты
А "передвигать программно под него слой с нужным мувиком" можно с помощью свойства Depth, вести обмен глубинами, только помня при этом, что глубина Depth - это не то же самое, что расположение слоя внутри мувика, а некая координата Z внутри него.


Последний раз редактировалось mooncar; 03.05.2009 в 22:04.
Старый 03.05.2009, 22:00
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 17  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Всем спасибо! Буду разбираться.

Старый 03.05.2009, 23:00
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 18  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Код AS1/AS2:
var alp:Number = 30; //задаем прозрачность при щелчке
var clickOn:Number = 0; //триггер состояния карты
var hit:Number; //триггер попадания по объекту
 
//прописываем функции отслеживания щелчка на каждом объекте в карте
for (var j in mc) {
mc[j].onRelease = function() {
	mc._alpha = alp;
	for (var i in mc) {
		if (typeof mc[i] && this == mc[i]) {
		mc[i]._alpha = 100*100/alp;
		} //if 
		else {
		mc[i]._alpha = alp;	
		}
	  } //for
	  clickOn = 1;
};
}
 
//восстанавливаем все прозрачности до 100, если щелкнули мимо объекта в карте, иначе, если попали по объекту, будет работать код выше
onMouseDown = function () { 
	if (clickOn == 1) { 
	hit = 0; //изначально считаем, что попадания ни по объекту не было
	for (var i in _root.mc) {
		if (mc[i].hitTest(_xmouse, _ymouse)) {
		hit = 1;
		}
	}
 
	if (hit == 0) { //если так и не попали ни по одному из объектов, то восстанавливаем все прозрачности
		mc._alpha = 100;
		for (var j in mc) {
			mc[j]._alpha = 100;
		}
		clickOn = 0;
	}
	}  
};


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

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

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


 


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


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