Проблема с фильтром искры размытия Flex 4 - PullRequest
0 голосов
/ 18 июня 2011

Я пытаюсь создать свое собственное модальное окно (встроенный менеджер всплывающих окон не будет работать для этого приложения) и сделать объекты за окном размытыми.Приведенный ниже код явно неверен, поскольку он не работает, но может ли кто-нибудь указать мне правильное направление?Нужно ли вручную размыть каждый объект за окном?

<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 Ответ

2 голосов
/ 18 июня 2011

Ваш код, очевидно, просто размывает этот черный прямоугольник и ничего больше. Проблема в том, что вы хотите размыть все приложение, кроме модального окна.

Я могу придумать два решения:

раствор 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), прежде чем появится всплывающее окно. Поместите это изображение поверх вашего приложения и примените к нему фильтр размытия. Затем поместите модальное окно. Вы не можете нажать на что-либо, потому что изображение наложено на все, но это поведение, которое вы хотите от модального окна.

...