Добавление маски в качестве прозрачного объекта во Flex - PullRequest
1 голос
/ 10 августа 2011

Я пытаюсь добавить оверлей поверх моей основной сцены в Flex, с помощью see thru.

Идея состоит в том, что пользователи могут взаимодействовать только с элементами, открытыми через Эллипс.

Вот мой код:

<!-- Our black overlay -->
<s:Graphic width="100%" height="100%" cacheAsBitmap="true" mask="{this.focus}"
           maskType="{MaskType.CLIP}">
    <s:Rect width="100" height="100">
        <s:fill>
            <s:SolidColor alpha="0.7" color="0x000000" />
        </s:fill>
    </s:Rect>
</s:Graphic> 

<!-- Our mask -->
<s:Group id="focus" cacheAsBitmap="true">
    <s:Ellipse id="ellipse" x="150" y="150" width="100" height="100">
        <s:fill>
            <s:SolidColor color="0xFFFFFF" />
        </s:fill>
    </s:Ellipse>    
</s:Group>

В Flash Builder наложение, кажется, работает должным образом:

Overlay with see-thru in Flash Builder

Но вот как выглядит эффект в игре:

Effect in Application

Это противоположность того, что я ищу! Любая помощь приветствуется.

Спасибо.

------------- РЕДАКТИРОВАТЬ -----------------

@ HotN: Спасибо за вашу помощь, есть ли способ добавить альфа в окружающую область? Идея в том, чтобы остальная часть игры была видимой.

enter image description here

1 Ответ

0 голосов
/ 10 августа 2011

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

...