2006/07/20: FlashのダイナミックテキストのletterSpacingを調整するときのポイント
カテゴリ: FLASH(AS2)
投稿者: mio
ダイナミックテキストのletterSpacingの調節についてですが、意外と苦戦したのでメモしておきます。
たとえば、test_TFという名前のTextFieldオブジェクトがあって、その中の文章のletterSpacingを変えたいとします。
このとき、以下のようなスクリプトを実行するとletter spacingを変えることができます。
が、しかし!!!
これで安心してはいけません。
ここで、このテキストの中身を操作すると、
また元通り、letterspacingが0に戻ってしまうのです。
なので、
test_TF.text += "1234";
といったようにテキストの中身を変化させたら、そのあとに、もう一度、letter spacingを設定しなおさないといけないようでした。
上記のプログラムでテキストフォーマットの設定部分を関数にしていたのはそのためです。
test_TF.text += "1234";
setLetterSpacing();
みたいな感じで使いましょう。
var format の部分は、関数の外で定義した方が賢いような気がしますが、とにかくテキスト変更のあとに、もう一度テキストフォーマットを再設定しましょうということで。
もし他にいい方法があれば是非ご教授ください。
トラックバックURL
たとえば、test_TFという名前のTextFieldオブジェクトがあって、その中の文章のletterSpacingを変えたいとします。
このとき、以下のようなスクリプトを実行するとletter spacingを変えることができます。
var test_TF:TextField;
test_TF.text = "abcd";
function setLetterSpacing()
{
var format:TextFormat = new TextFormat();
format.letterSpacing = 2;
test_TF.setTextFormat(format);
}
setLetterSpacing();
が、しかし!!!
これで安心してはいけません。
ここで、このテキストの中身を操作すると、
また元通り、letterspacingが0に戻ってしまうのです。
なので、
test_TF.text += "1234";
といったようにテキストの中身を変化させたら、そのあとに、もう一度、letter spacingを設定しなおさないといけないようでした。
上記のプログラムでテキストフォーマットの設定部分を関数にしていたのはそのためです。
test_TF.text += "1234";
setLetterSpacing();
みたいな感じで使いましょう。
var format の部分は、関数の外で定義した方が賢いような気がしますが、とにかくテキスト変更のあとに、もう一度テキストフォーマットを再設定しましょうということで。
もし他にいい方法があれば是非ご教授ください。