Flex 4火花模糊滤镜问题

时间:2011-06-18 00:06:30

标签: flex filter adobe blur

我正在尝试创建自己的模态窗口(内置的弹出管理器不适用于此应用程序)并使窗口后面的对象变得模糊。下面的代码显然是错误的,因为它不起作用,但是有人能指出我正确的方向吗?我是否必须手动模糊窗口后面的每个对象?

<s:Button label="Testing" left="512" top="300">     
</s:Button>
<s:Rect width="1024" height="768" alpha=".5">
    <s:fill>
        <s:SolidColor color="#000000">              
        </s:SolidColor>
    </s:fill>
    <s:filters>
        <s:BlurFilter>              
        </s:BlurFilter>
    </s:filters>
</s:Rect>

1 个答案:

答案 0 :(得分:2)

你的代码显然只是模糊了那个黑色矩形而没有别的。这里的问题是你要模糊整个应用程序,模态窗口除外。

我可以想到两个解决方案:

解决方案1 ​​

将整个应用程序放在一个单独的类中,并将过滤器应用于:

<s:Application>

    <s:States>
        <s:State name="normal" />
        <s:State name="modal" />
    </s:States>

    <view:Main>
        <view:filters.modal>
            <s:BlurFilter>
        </view:filters.modal>
    </view:Main>

    <s:Group includeIn="modal">
        <view:ModalWindow />
    </s:Group>
</s:Application>

(这不是一个有效的代码示例:它的目的只是传达这个想法)

解决方案2

在弹出窗口之前拍摄应用程序的屏幕截图(创建一个BitMap)。将该图像放在您的应用上,然后将模糊滤镜应用于该图像。然后放置模态窗口。由于图像覆盖了所有内容,因此您无法点击任何内容,但这是您希望从模态窗口中获得的行为。