0

ステージにTLFテキストフィールドがあります。私はこれを簡単なフラッシュドキュメントでテストしようとしています。

私のコードは、解析するxmlを取り込んでいます。xmlは変化し、テキストフィールドのすべてのプロパティを常に変更するとは限りません。たとえば、ある場合には、フォントのサイズのみを変更したい場合があります。別のケースでは、フォントの配置を変更したいだけです。

アラビア語に翻訳するため、TLFテキストフィールドを使用しています。すでに右から左へのテキストを使用しています。

これらは、コードで編集する必要があるいくつかのプロパティです。

  • フォントサイズ
  • フォント
  • アラインメント
  • リーディング
  • 太字、斜体、下線(太さ)

どんなコーディングの助けも素晴らしいでしょう。テキストフローとテキストレイアウトのアイデアを見てきましたが、機能させることができないため、明らかに正しく使用していません。

4

1 に答える 1

0

TLFフィールドの使用をあきらめてやめるずっと前に。動的なアドインを要求し、tlf ファイルをステージから/ステージへ削除するプロジェクトがあります。これは、このプロジェクトのコードです:

これにより、デフォルトのフォーマットが動的に生成されます

        var config:Configuration    = new Configuration();
        var defTextFormat:  TextLayoutFormat = new TextLayoutFormat();
        defTextFormat.textAlign   = TextAlign.LEFT;
        defTextFormat.fontFamily  = m_strFontName;
        defTextFormat.fontSize    = m_nFontSize;
        defTextFormat.fontWeight  = FontWeight.BOLD
        defTextFormat.paddingLeft = 3;
        defTextFormat.paddingTop  = 3;
        defTextFormat.paragraphStartIndent = 3;
        defTextFormat.paragraphSpaceBefore = 3;

        config.defaultLinkActiveFormat  = defTextFormat;
        config.defaultLinkHoverFormat   = defTextFormat;
        config.defaultLinkNormalFormat  = defTextFormat;
        config.textFlowInitialFormat    = ITextLayoutFormat( defTextFormat );

        m_textFlow = new TextFlow( config );

メンバー m_textFlow は、TLF フィールドへの参照を保持します。要素を追加および削除するには、m_textFlow.addChild( p ); を使用します。p は段落要素です。http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flashx/textLayout/elements/ParagraphElement.htmlを参照してください。

たとえば、要素の FontSize と色を変更するには、次のようにします。

var _p:ParagraphElement = ParagraphElement( m_textFlow.getChildAt( iChild ) );
for ( var iParChild: uint = 0; iParChild < _p.numChildren; ++iParChild )
{
   _p.getChildAt( iParChild ).color = color;
       _p.getChildAt( iParChild ).fontSize = nRatio;

...

多分これはあなたを助けることができます。

于 2012-10-11T08:07:20.607 に答える