如何在文本中添加笔划?

时间:2012-04-12 04:30:12

标签: actionscript-3 flash flex fxg

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

更新
建议的最接近的解决方案是添加阴影滤镜,如下所示。我添加了一个带有笔划的矩形进行比较。如果行程重量在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>

3 个答案:

答案 0 :(得分:6)

我只知道如何应用具有微小模糊半径的非常强大的GlowFilter

类似的东西:

var stroke:GlowFilter = new GlowFilter(0x000000, 1, 2, 2, 10, 1);
field.filters = [stroke];

答案 1 :(得分:2)

距离为0的投影滤镜也适用,角度不重要。类似的东西:

var shadow:DropShadowFilter = new DropShadowFilter(0, 90, 0x000000, 1, 10, 10, 10);
text.filters = [shadow];

答案 2 :(得分:0)

您无法以这种方式应用于文本,但您可以将文本重绘为图形并以此方式创建轮廓。

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

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