首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Flex中结合使用ColorMatrixFilter和HDividedBox

在Flex中结合使用ColorMatrixFilter和HDividedBox
EN

Stack Overflow用户
提问于 2009-06-08 18:22:39
回答 1查看 553关注 0票数 0

我想使用一个带有HDividedBox元素的ColorMatrixFilter,这样左边和右边的框就会使图表变成黑白的,但是中间的部分就会变成彩色。

似乎过滤器必须在AreaChart上,而不是在HDividedBox上,但我想知道是否有一种方法可以设置画布来掩盖它们背后的内容。

我当前的代码如下所示;灰色过滤器没有任何效果。

代码语言:javascript
复制
<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>

过滤器代码如下:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-08 18:53:16

滤镜仅应用于所应用对象的内容。因此,如果你在rightBox画布中有一些东西,那么应该可以看到应用了过滤器的东西。但是如果对象不是这个画布的子对象,它将不会应用滤镜。

您可以尝试使用BitmapData对象及其draw方法来捕获画布下方的图像,并将滤镜应用于生成的位图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/966221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档