0

我正在尝试创建一个简单的绘图应用程序,允许用户使用滑块更改其颜色的色调、饱和度、亮度和对比度。我一直在环顾四周,这就是我想出的全部,我需要一些帮助来确定它为什么不起作用。

var colourFilter:AdjustColor = new AdjustColor();
var mColourMatrix:ColorMatrixFilter;
var mMatrix:Array;

brightSL.addEventListener(SliderEvent.CHANGE,changecol) // brightSL would be the brightness slider
contSL.addEventListener(SliderEvent.CHANGE,changecol)
satSL.addEventListener(SliderEvent.CHANGE,changecol)
hueSL.addEventListener(SliderEvent.CHANGE,changecol)


function changecol (SliderEvent):void {
colourFilter.brightness = brightSL.value;
colourFilter.contrast = contSL.value;
colourFilter.saturation = satSL.value;
colourFilter.hue = hueSL.value;

mMatrix = colourFilter.CalculateFinalFlatArray();
mColourMatrix= new ColorMatrixFilter(mMatrix);

selectedColor.filters = [mColourMatrix]; // selectedColor is the color the user is currently using
    board.graphics.lineStyle(sizeSlider.value, selectedColor, alphaSlider.value)
  }

问题是颜色没有改变,我不知道为什么。任何帮助将不胜感激

4

1 回答 1

0

我不是绝对肯定的,但我认为问题在于您没有确保在创建实例后设置 AdjustColor 对象上的所有属性。尝试改变

var colourFilter:AdjustColor = new AdjustColor();
var mColourMatrix:ColorMatrixFilter;
var mMatrix:Array;

var colourFilter:AdjustColor = new AdjustColor();
colourFilter.brightness = 0;
colourFilter.contrast = 0;
colourFilter.saturation = 0;
colourFilter.hue = 0;
var mColourMatrix:ColorMatrixFilter;
var mMatrix:Array;

如果这可行但不适合您的用例,则使用AdjustColor.AllValuesAreSet()可能会有所帮助。

于 2014-04-20T05:20:10.180 回答