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

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

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

Регистрация: Oct 2013
Сообщений: 126
Цитата:
Сообщение от faraday Посмотреть сообщение
Можете посомтреть в сторону tweeLite. там это все легко делать через colorTransform . Ну а вообще не знаю чем вас смущает количество статусов. правильное решение - использовать автомат состояний. Иначе быстро запутаетесь . Ну и если типов юнитов много, надо подумать о правильном наследовании. Но это так, оффтопик
Ради такого пустяка не хочется использовать твинер. А статусы у меня и так есть: от них зависит и поведение, и анимация. И количество статусов меня совершенно не смущает, чего не скажешь про количество анимаций: так как для каждого статуса своя анимация, то рисования отдельной анимации для каждого статуса, но в отравленном состоянии как раз увеличило бы количество анимаций вдвое. Зачем такие муки, если можно перекрасить программно, правильно?

Цитата:
Сообщение от callme Посмотреть сообщение
Используй greenMultiplier или greenOffset у ColorTransform.
Спасибо большое, то, что надо! Вот, что получилось (может, кому пригодится):
Свойство юнита:
Код AS3:
private var _defaultColor:ColorTransform; // цвет по умолчанию
Теперь, чтобы озеленить юнита, пишу poisonColor(); чтобы снять озеленение - poisonColor(false).
А вот сам метод:
Код AS3:
/**
* 
* Установка и отмена цвета отравления
* 
* @param	green озеленять или нет, по умолчанию - да
*/
private function poisonColor(green:Boolean = true):void {
	if (green) {
		var newColorTransform:ColorTransform = transform.colorTransform; // отталкиваемся от цвета по умолчанию
		newColorTransform.color = 0x00FF00; // зелёный
		newColorTransform.greenMultiplier = 1; // зелёность зелёного цвета не меняется
		newColorTransform.greenOffset = .5; // прозрачность зелёного
		transform.colorTransform = newColorTransform; // применяем новый цвет
	} else {
		transform.colorTransform = _defaultColor;// возвращаем исходный цвет
	}
}
Метод не универсален, но для моих целей подходит вполне. Хотя предложения по чистоте и оптимизации кода приветствуются.

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

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

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


 


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


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