1

如何在 Flex 4 中为文本添加笔画?具体来说,我想将它添加到标签中(文本将在其中更改)。

更新
建议的最接近的解决方案是添加阴影过滤器,如下所示。我添加了一个带有笔划的矩形进行比较。如果行程重量在 2 到 3 之间,则可以接受。如果它高于或低于该值,则它太模糊或粗糙。就我而言,我需要支撑 2 到 6 个重量。

一个后续问题是是否可以通过 Pixel Bender 创建笔画过滤器。

<s:VGroup>

<s:Label text="Select an example on the left. Right-click to view source." 
         color="#FF8C00"
         top="10" left="10"
         fontSize="25">
    <s:filters>
        <s:DropShadowFilter blurX="2" blurY="2" distance="0" quality="1" strength="10" color="#000000"/>
    </s:filters>
</s:Label>

<s:Rect width="100%" radiusX="8" radiusY="8"
        height="18">
    <s:fill>
        <s:SolidColor color="#FF8C00"/>
    </s:fill>
    <s:stroke>
        <s:SolidColorStroke weight="1" />
    </s:stroke>
</s:Rect>

<s:Label text="Select an example on the left. Right-click to view source." 
         color="#FF8C00"
         top="10" left="10"
         fontSize="25">
    <s:filters>
        <s:DropShadowFilter blurX="4" blurY="4" distance="0" quality="1" strength="10" color="#000000"/>
    </s:filters>
</s:Label>

<s:Rect width="100%" radiusX="8" radiusY="8"
        height="18">
    <s:fill>
        <s:SolidColor color="#FF8C00"/>
    </s:fill>
    <s:stroke>
        <s:SolidColorStroke weight="2" />
    </s:stroke>
</s:Rect>

<s:Label text="Select an example on the left. Right-click to view source." 
         color="#FF8C00"
         top="10" left="10"
         fontSize="25">
    <s:filters>
        <s:DropShadowFilter blurX="6" blurY="6" distance="0" quality="1" strength="10" color="#000000"/>
    </s:filters>
</s:Label>

<s:Rect width="100%" radiusX="8" radiusY="8"
        height="18">
    <s:fill>
        <s:SolidColor color="#FF8C00"/>
    </s:fill>
    <s:stroke>
        <s:SolidColorStroke weight="3" />
    </s:stroke>
</s:Rect>

<s:Label text="Select an example on the left. Right-click to view source." 
         color="#FF8C00"
         top="10" left="10"
         fontSize="25">
    <s:filters>
        <s:DropShadowFilter blurX="8" blurY="8" distance="0" quality="1" strength="10" color="#000000"/>
    </s:filters>
</s:Label>

<s:Rect width="100%" radiusX="8" radiusY="8"
        height="18">
    <s:fill>
        <s:SolidColor color="#FF8C00"/>
    </s:fill>
    <s:stroke>
        <s:SolidColorStroke weight="4" />
    </s:stroke>
</s:Rect>

</s:VGroup>
4

3 回答 3

6

我知道的唯一方法是应用一个非常非常强大GlowFilter的模糊半径。

就像是:

var stroke:GlowFilter = new GlowFilter(0x000000, 1, 2, 2, 10, 1);
field.filters = [stroke];
于 2012-04-12T04:31:07.587 回答
3

距离为 0 的阴影滤镜也可以使用,角度并不重要。就像是 :

var shadow:DropShadowFilter = new DropShadowFilter(0, 90, 0x000000, 1, 10, 10, 10);
text.filters = [shadow];
于 2012-04-12T14:37:13.100 回答
0

您不能以这种方式应用于文本,但您可以将文本重新绘制为图形并以这种方式创建轮廓。

您可以使用 degrafa 之类的库,或者查看(或使用)five3d 中的排版类,它将字体转换为图形Typography3D还有一个应用程序允许您将字体转换为图案,因此您可以使用任何字体。

所以本质上,这是可能的,但问题是它是否值得。

于 2012-04-12T05:51:49.673 回答