Я хочу использовать ColorMatrixFilter с элементом HDividedBox, чтобы левые и правые поля делали диаграмму черно-белой, но оставляли центральную часть цветной.
Кажется, что фильтр должен быть на AreaChart вместо HDividedBox, но мне было интересно, есть ли способ настроить холсты для маскировки содержимого позади них.
Мой текущий код выглядит следующим образом; серый фильтр не действует.
<mx:HDividedBox id="dividedBox" horizontalScrollPolicy="off"
width="100%" height="100%"
liveDragging="true" >
<mx:Canvas id="leftBox" backgroundColor="#FFFFFF"
backgroundAlpha="0.5" width="50%"
height="100%" />
<mx:Canvas backgroundColor="#FFFFFF" backgroundAlpha="0"
width="50%" height="100%" buttonMode="true"
mouseDown="setMouseDown(rangeChart);"
minWidth="{rangeDataRatio * 4}"
mouseUp="showAnnotations = true; refreshAnnotations()"/>
<mx:Canvas id="rightBox" backgroundColor="#FFFFFF"
backgroundAlpha="0.5" width="0%" height="100%"
filters="{[greyFilter]}" />
</mx:HDividedBox>
Код фильтра выглядит следующим образом:
var greyMatrix:Array = [
1,1,1,0,0,
1,1,1,0,0,
1,1,1,0,0,
0,0,0,1,0 ];
var greyFilter:ColorMatrixFilter =
new ColorMatrixFilter(greyMatrix);