TextFieldのテキストのセクションに非スタイル属性を適用できるようにしたい。たとえば、キャラクター30〜45は、特定の方向にアニメーション化するように設定されます。
このフィールドは編集可能な文字であるため、テキストが何らかの方法で編集された場合、30〜45文字は30〜45文字ではなくなる可能性があります。
どのキャラクターに属性が適用されているかを追跡するためのエレガントな方法を誰かが考えることができますか?
TextFieldのテキストのセクションに非スタイル属性を適用できるようにしたい。たとえば、キャラクター30〜45は、特定の方向にアニメーション化するように設定されます。
このフィールドは編集可能な文字であるため、テキストが何らかの方法で編集された場合、30〜45文字は30〜45文字ではなくなる可能性があります。
どのキャラクターに属性が適用されているかを追跡するためのエレガントな方法を誰かが考えることができますか?
同様のプロジェクトがあり、必要に応じて TextField クラスを拡張することになりました。これは何をすべきかの簡単な説明です - 私の実際のコードは機密です.
text
とのセッターをオーバーライドするhtmlText
これらのセッターからのコンテンツをカスタム オブジェクトの配列に解析します。これらの各オブジェクトには、未加工のテキスト チャンクと、それらに適用されるメタデータ (形式、コメントなど) が含まれています。
例えば、
<span class="sometext" animation="true">Info</span>
次のようなオブジェクトに変換されます。
{ text:"Info", clazz="sometext", animation:true };
appendText
して未加工のテキストのチャンクごとに追加し、 を使用setTextFormat
して各追加ステップの後に書式設定を適用する (またはその他の必要なことを行う) ことによってレンダリングされます。super.text
。)selectionBeginIndex
ますselectionEndIndex
(オブジェクト配列の生テキストの文字数を数えて、影響を受けるチャンクを見つけます)。コンテナー オブジェクト内で新しいテキストを直接追加または置換し、手順 3. を使用して TextField 内のテキスト全体を更新します。text
、新しくフォーマットされた情報を返します。htmlText
以前はhtmlText
、完全に装飾された xml 文字列を返しtext
、生のテキスト コンテンツにアクセスするために保持していました。これは、一般的な TextField と同様です。