在Flex中添加Mask作为透视对象

时间:2011-08-10 17:18:15

标签: flash flex4.5

我正在尝试在Flex中的主场景上添加叠加层,并通过直观看法。

这个想法是用户只能与通过Ellipse暴露的元素进行交互。

这是我的代码:

<!-- 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:感谢您的帮助,无论如何都要在周边区域添加alpha?这个想法是让游戏的其余部分可见。

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试将街道图像放在黑色矩形的顶部,然后使用椭圆作为活动图像的遮罩,而不是尝试遮住黑色矩形。