1

actionscript 3 では、次のものが含まれTextFieldています。

  • CSS スタイリング
  • 埋め込みフォント
  • textAlign : CENTER
  • autoSize : CENTER

...イタリック体を使用すると、右の文字がわずかに切り取られます (特に大文字)。基本的に、正しいサイズの検出に失敗しているようです。

私は以前にこの問題を抱えていましたが、(textWidthテキストのチェックやオフセットなどの代わりに) 良い回避策があるのではないかと思いましたか?

4

3 に答える 3

3

textFieldmultiline、autosize、htmlText を使用して、いつものように初期化します。

次に、この小さなトリックを実行します。

// saving wanted width and height plus 1px to get some space for last char
var savedWidth = myTextField.width + 1;
var savedHeight = myTextField.height + 1;

// removing autoSize, wich is the origin of the problem i think                 
myTextField.autoSize = "none";      

// now manually autoSizing the textField with saved values          
myTextField.width = savedWidth;
myTextField.height = savedHeight;
于 2012-10-26T23:09:04.573 に答える
1

それほど快適ではありませんが、Flash はこの一見単純なタスクで問題を起こすことがあります。HTML の CSS スタイリングはTextField素晴らしい追加機能でしたが、テキスト レンダリングで頭痛の種になりました。実際、その理由からテキストのスタイリングに CSS を使用することはめったにありませんHTML 内で太字斜体、および通常のタイプフェイスを組み合わせると、Flash が幅の計算を誤ってしまいautoSize、マスクが少し短く設定されることしか想像できません。Flash Player 10 の新しいテキスト レンダリング エンジンが最終的にこれらの問題を修正することを強く願っています (理論的には確かに改善されているように見えます)。

したがって、私の解決策は、テキストにリンクが必要な場合を除いて、HTML を使用しないこと<a>です...そして、いくつかのトリッキーなテキストシフトの問題さえあります。そのような場合、同じテキスト フィールド内で異なるフォント ウェイトとフォント スタイルを混在させることは避けます。TextFormatで直接使用する他のすべてのケースTextField

現在のアーキテクチャから抜け出せない場合 (何らかの理由で) &nbsp;、html エンコードされた文字列の末尾に追加してみてください。または、フィールドの幅を手動で設定し、依存しないこともautoSizeできます(前述のとおり)。しかし、CSS/HTML ルートを使い続けると、必要のないときに別の新しくて苦痛な制限が見つかる可能性があります。

于 2009-10-06T09:59:00.150 に答える
0

TextFieldFlashプレビューと実際のブラウザプラグインでマスクの動作が異なるという問題がありました。通常、これは私には奇妙なことですが、ブラウザでより正確に表示されます。をブラウザで実行してswf、問題が永続的な問題ではなく実際に迷惑であるかどうかを確認しましたか?

私はこれを言いました:これを解決するための私の理想的なアプローチは、フィールドの最後の文字の後に常にスペースを追加する
変更イベントをアタッチすることです。TextFieldそして、値を使用するときにこのスペースを削除することを忘れないでください。

ただし、これには変更イベントがない可能性があり、HTMLでレンダリングされたテキストフィールドであることは考慮されていません。HTMLテキストフィールドに末尾のスペースを追加するには、&nbsp;もう一度スローインしますが、これで問題が解決するわけではありません。

于 2009-10-04T22:38:22.497 に答える