Показать сообщение отдельно
Старый 02.04.2010, 16:23
MidnightOne вне форума Посмотреть профиль Отправить личное сообщение для MidnightOne Найти все сообщения от MidnightOne
  № 1  
Ответить с цитированием
MidnightOne
 
Аватар для MidnightOne

Регистрация: Jan 2010
Сообщений: 62
По умолчанию Изменение контраста и Яркости

Здравствуйте.

На active.tutsplus.com есть тутор, рассказывающий о изменении яркости. Я взял от туда код (и .fla) и изменил его немного (нагуглив, что кроме оффсета есть Multiplier). Теперь в нём есть псевдо-контраст. Почему псевдо? Потому, что он работает совсем не так, как ожидалось и хотелось...
http://**********/1297303

Есть возможность сделать более-менее реалистичное изменение контраста, но тогда вместе множителем придётся изменять и смещение, следовательно будет только один ползунок. (независимости не будет)

Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import fl.events.SliderEvent;
	import flash.geom.ColorTransform;
 
	public class Main extends Sprite
	{
		var colorTransform:ColorTransform = new ColorTransform();
 
		public function Main():void
		{
			panel.slider.addEventListener(SliderEvent.CHANGE, updateBrightness);
			panel.cSlider.addEventListener(SliderEvent.CHANGE, updateContrast);
		}
 
		private function updateBrightness(e:SliderEvent):void
		{
			colorTransform.redOffset = e.value;
			colorTransform.greenOffset = e.value;
			colorTransform.blueOffset = e.value;
 
			image.transform.colorTransform = colorTransform;
 
			panel.bValue.text = e.value;
		}
 
		private function updateContrast(e:SliderEvent):void
		{
			colorTransform.redMultiplier = colorTransform.greenMultiplier = colorTransform.blueMultiplier = e.value / 100;
 
			image.transform.colorTransform = colorTransform;
 
			panel.cValue.text = e.value;
		}
	}
}
Где-то слышал, что это можно сделать через color matrix, но не знаю как.

PS: Мне нужны два независимых ползунка.