Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3更改颜色的H/S/B/C_Actionscript 3_Colors_Brightness_Contrast - Fatal编程技术网

Actionscript 3 AS3更改颜色的H/S/B/C

Actionscript 3 AS3更改颜色的H/S/B/C,actionscript-3,colors,brightness,contrast,Actionscript 3,Colors,Brightness,Contrast,我正在尝试创建一个简单的绘图应用程序,允许用户使用滑块更改颜色的色调、饱和度、亮度和对比度。我一直在四处寻找,这就是我想到的,我需要一些帮助来确定为什么它不起作用 var colourFilter:AdjustColor = new AdjustColor(); var mColourMatrix:ColorMatrixFilter; var mMatrix:Array; brightSL.addEventListener(SliderEvent.CHANGE,changecol) // br

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

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)
  }
问题是颜色没有改变,我不知道为什么。如果您能提供任何帮助,我们将不胜感激。

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

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


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

在所有滑块至少移动一次后,您是否看到任何更改?很抱歉回复太晚,我有点忙,我在尝试运行代码时遇到两个错误。“1046:找不到类型或类型不是编译时常量:AdjustColor.”和“1180:调用可能未定义的方法AdjustColor.”听起来您也需要导入:“import fl.motion.AdjustColor;”啊,这修复了错误,但没有任何更改,滑块仍然不工作:/Odd。ColorFilter.AllValuesReset()上的跟踪是否返回true?selectedColor是什么类型的对象?我想多加一点背景会有帮助的。
AdjustColor
是否适用于movieclips?如果是这样的话,这就是它不起作用的原因。我认为问题在于我将过滤器应用于什么。我把它应用到一种颜色,而不是一个图像,所以我认为这不会工作,但我不确定。有没有其他方法可以改变颜色的h/s/b/v?
var colourFilter:AdjustColor = new AdjustColor();
colourFilter.brightness = 0;
colourFilter.contrast = 0;
colourFilter.saturation = 0;
colourFilter.hue = 0;
var mColourMatrix:ColorMatrixFilter;
var mMatrix:Array;