我正在尝试创建自己的模式窗口(内置的弹出管理器不适用于此应用程序),并使窗口后面的对象变得模糊。下面的代码显然是错误的,因为它不起作用,但有人能给我指明正确的方向吗?我必须手动模糊窗口后面的每个对象吗?
<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
把你的整个应用程序放在一个单独的类中,并对其应用过滤器:
<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)。将该图像放在你的应用程序上,并对该图像应用模糊过滤器。然后放置模态窗口。你不能点击任何东西,因为图像覆盖了所有东西,但这是你想要的模式窗口的行为。