2012-04-12 15 views
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> 
+0

Flashアニメーションツールでは、テキストをアウトラインに変換してからストロークを適用する必要がありますが、もちろんコード内のテキストを変更することはできません。 – jhocking

答えて

6

私は小さなぼかし半径で、本当に、本当に強いGlowFilterを適用する方法を知っている唯一の方法です。以下のような

何か:

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

これは私が過去に使ったことですが、結果は満足できませんでした。 –

+0

残念ながら私は別の方法があるとは思わない。 – Marty

+0

には、小さな「blurX/blurY」と高い強度があり、これは非常にうまく機能します。あまりにも多くのフィルタを使用することにはちょっと注意してください。 – divillysausages

0

あなたはその方法をテキストに適用することはできませんが、グラフィックスとしてテキストを再描画してアウトラインをそのように作成することができます。

フォントをグラフィックスに変換する、degrafaのようなライブラリを使用したり、five3dのtypographyクラスを参照(または使用)することができますTypography3Dフォントをモチーフに変換できるアプリケーションもありますので、そのようにフォント。

本質的には可能ですが、それは価値があるのか​​という疑問です。

+0

私はこれを見ました。だから私はテキストをビットマップに変換すればいいのですが(私はこれを行う方法を知っています)、どういうわけかアウトラインを追加できますか?このためのAPIはありますか? –

+0

いいえ、ビットマップではありません。フォントグリフを一連の描画命令に変換します。それらを使って手動で線を描くことができます。 – Daniel

+0

フォントは動的なので、あらかじめ埋め込むことはできません。 –

2

距離が0のドロップシャドウフィルタも機能しますが、角度は重要ではありません。次のようなものがあります。

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

これは、グローフィルタより少し優れています。 1〜2体重のストロークに相当します。それはあまりにも荒いです。それはあまりにもぼやけている過去。元の投稿にいくつかの比較を追加しました。 –

+0

+1:最も簡単で効果的なソリューション – Zac

関連する問題