actionscript 3 では、次のものが含まれTextField
ています。
- CSS スタイリング
- 埋め込みフォント
- textAlign : CENTER
- autoSize : CENTER
...イタリック体を使用すると、右の文字がわずかに切り取られます (特に大文字)。基本的に、正しいサイズの検出に失敗しているようです。
私は以前にこの問題を抱えていましたが、(textWidth
テキストのチェックやオフセットなどの代わりに) 良い回避策があるのではないかと思いましたか?
actionscript 3 では、次のものが含まれTextField
ています。
...イタリック体を使用すると、右の文字がわずかに切り取られます (特に大文字)。基本的に、正しいサイズの検出に失敗しているようです。
私は以前にこの問題を抱えていましたが、(textWidth
テキストのチェックやオフセットなどの代わりに) 良い回避策があるのではないかと思いましたか?
textField
multiline、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;
それほど快適ではありませんが、Flash はこの一見単純なタスクで問題を起こすことがあります。HTML の CSS スタイリングはTextField
素晴らしい追加機能でしたが、テキスト レンダリングで頭痛の種になりました。実際、その理由からテキストのスタイリングに CSS を使用することはめったにありません。HTML 内で太字、斜体、および通常のタイプフェイスを組み合わせると、Flash が幅の計算を誤ってしまいautoSize
、マスクが少し短く設定されることしか想像できません。Flash Player 10 の新しいテキスト レンダリング エンジンが最終的にこれらの問題を修正することを強く願っています (理論的には確かに改善されているように見えます)。
したがって、私の解決策は、テキストにリンクが必要な場合を除いて、HTML を使用しないこと<a>
です...そして、いくつかのトリッキーなテキストシフトの問題さえあります。そのような場合、同じテキスト フィールド内で異なるフォント ウェイトとフォント スタイルを混在させることは避けます。TextFormat
で直接使用する他のすべてのケースTextField
。
現在のアーキテクチャから抜け出せない場合 (何らかの理由で)
、html エンコードされた文字列の末尾に追加してみてください。または、フィールドの幅を手動で設定し、依存しないこともautoSize
できます(前述のとおり)。しかし、CSS/HTML ルートを使い続けると、必要のないときに別の新しくて苦痛な制限が見つかる可能性があります。
TextField
Flashプレビューと実際のブラウザプラグインでマスクの動作が異なるという問題がありました。通常、これは私には奇妙なことですが、ブラウザでより正確に表示されます。をブラウザで実行してswf
、問題が永続的な問題ではなく実際に迷惑であるかどうかを確認しましたか?
私はこれを言いました:これを解決するための私の理想的なアプローチは、フィールドの最後の文字の後に常にスペースを追加する
変更イベントをアタッチすることです。TextField
そして、値を使用するときにこのスペースを削除することを忘れないでください。
ただし、これには変更イベントがない可能性があり、HTMLでレンダリングされたテキストフィールドであることは考慮されていません。HTMLテキストフィールドに末尾のスペースを追加するには、
もう一度スローインしますが、これで問題が解決するわけではありません。