重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

mixiでも質問させて頂いたのですが、レスが貰えませんでした。
ご存知の方がおりましたらアドバイスを頂けませんでしょうか。

ステージにtxt_mcというMCを配置し、その中に、txtというダイナミックテキストを作成します。

txt_mc.txt.autoSize = "left";
txt_fmt = new TextFormat();
txt_fmt.underline = true;
txt_fmt.color = 0xff0000;
txt_mc.txt.text = "あいうえおかきくけこさしすせそ";
txt_mc.txt.setTextFormat(txt_fmt);

としてもunderlineがつきません。colorの設定は可能です。

autoSizeをコメントアウトするとunderlineが有効になるのですが、こちらを回避するテクニックなどございますでしょうか。

txt_mc.txt._width = txt_fmt.getTextExtent("あいうえおかきくけこさしすせそ").width - 4;
で設定するとunderlineが有効になるのですが、getTextExtentでサイズが上手く取得出来ませんでした。
(この場合は大きくなる。場合によっては小さくなったりする。)

with(txt_fmt){
font = "_ゴシック";
}
も追加しております。

フォントは_ゴシックになります。

ご存知の方がおりましたらアドバイスをいただけませんでしょうか。よろしくお願いいたします。

環境OSX10.4.7 Flash8(ver7で書き出し)

A 回答 (2件)

つまり,


ご質問にあるようにスクリプトを書いても,
また,

----------------------------------
txt_mc.txt.autoSize = "left";
txt_fmt = new TextFormat();
with (txt_fmt) {
font = "_ゴシック";
underline = true;
color = 0xff0000;
}
txt_mc.txt.text = "あいうえおかきくけこさしすせそ";
txt_mc.txt.setTextFormat(txt_fmt);
---------------------------------

このように font = "_ゴシック"; を入れても,
アンダーラインが付かないということですか…。

よくわかりません。
良くわからないので,mixiではレスが付かなかったのかもしれません。

どう,よくわからないのかと言うと,
私の環境ではアンダーラインが "付く" のです。
スクリプトはどっちにしても付きますし,
SWF を Flash Player 8 用にパブリッシュしても,
Flash Player 7 用にパブリッシュしても付きます。
また,
Flash Player 7 用にパブリッシュした SWF を
Flash Player 7 で開いても,
Flash Player 8 で開いても,
また ブラウザプラグインの Flash Player 9 で開いても,
赤い字の あいうえおかきくけこさしすせそ の下に,
アンダーラインがちゃんと付きます。


私が見たところ,違いは OS のみです。
OSX と WindowsXP です。
私は Mac を持っていないので検証できません。

Mac版 Flash 8 がおかしいのか,Mac版 Flash Player 7 がおかしいのか,
また,ぜんぜん違うシステム的なものに原因があるのかがよくわかりません。
私が節穴の目で探したところ,
Adobe サイトでは,そういう不具合報告が見つかりませんでした。
Mac では ダイナミックテキスト及びテキスト入力のテキストフィールドに,カーニングが効かないという報告はありましたが。



========================


解決策ではなく,
代替案としては,ダイナミックテキストを HTML でレンダリングにして,
HTML のタグでアンダーラインを付けるという方法はいかかでしょうか?

---具体例---
--------------------------------------------
txt_mc.txt.autoSize = "left";
txt_mc.txt.html = true;
txt_mc.txt.htmlText = "<font face=\"_ゴシック\" color=\"#FF0000\"><u>あいうえおかきくけこさしすせそ</u></font>";
--------------------------------------------

これも,Mac ではダメな可能性もありますが,
一応私の環境では OK でした。
    • good
    • 0
この回答へのお礼

回答どうもありがとうございました。
成功するというのが確認出来ましたので、現象をしぼっていくと、
フォントの大きさによって出る出ないがありました。(私は_ゴシックの10ptで試していました)

そこでテキストフィールドの書式オプションの行間を増やす事によって、無事にアンダーラインが表示される様になりました。(OSX Flash8は-1がデフォルト?)

どうもありがとうございました。

お礼日時:2006/12/05 22:55

#1です。


問題は解決されたようですが,
環境問題は重要だと考えましたので,補足いたします。

> (私は_ゴシックの10ptで試していました)

Windows環境では, デフォルトの状態では, 10pt にしてもアンダーラインは表示されました。


> 書式オプションの行間を増やす事によって、
> 無事にアンダーラインが表示される様になりました。
> (OSX Flash8は-1がデフォルト?)

その,「Flash8は-1がデフォルト」 と書かれているのは,
テキストフィールドを選択した状態で,
下のプロパティインスペクタにある,「書式オプションの選択」(Pみたいな形の)ボタンを押したときに出てくる,
「フォーマットオプション」ダイアログでの,

 行間:[       ] v

となっている部分のことですよね。
Windows版でのデフォルトは 2pt です。
つまり,

 行間:[2pt      ] v

です。
この 2pt はバージョンに関わらず昔から(おそらく Flash 2 や 3 の頃から(少なくとも Flash 4 では)) 2pt です。

試しに, -1pt にしてパブリッシュしてみましたら,
質問者さまがおっしゃるように,みごと ”アンダーバーが消えました!” 。
ここは,0pt 以上の方が良さそうですね。

という補足でした。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!