我想使用一个带有HDividedBox元素的ColorMatrixFilter,这样左边和右边的框就会使图表变成黑白的,但是中间的部分就会变成彩色。
似乎过滤器必须在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);发布于 2009-06-08 18:53:16
滤镜仅应用于所应用对象的内容。因此,如果你在rightBox画布中有一些东西,那么应该可以看到应用了过滤器的东西。但是如果对象不是这个画布的子对象,它将不会应用滤镜。
您可以尝试使用BitmapData对象及其draw方法来捕获画布下方的图像,并将滤镜应用于生成的位图。
https://stackoverflow.com/questions/966221
复制相似问题