- ベストアンサー
外部テキストファイルを読み込む際に文字間隔が反映されない問題について
- 初心者にとって、外部テキストファイルを読み込んで文字間隔を設定するのは難しいことがあります。
- フレームアクションを用いて外部テキストファイルからの読み込みを行っていますが、文字間隔の設定が反映されない問題が発生しています。
- AdobeのサポートサイトのFAQを参考にしたが、解決策が見つからず困っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
外部テキスト,内部テキストに関係なく, ActionScript でテキストフィールドに文字を代入すると文字間隔の設定は無視されますね。 たとえば, my_txt.text = "Macromedia Flash MX 2004"; これでもダメです。 Flashのバージョンを書かれていらっしゃいませんが (AS2 をご使用ということからでは FlashMX2004 以上 までしかわかりません), Flash 8 以降(要 FlashPlayer8以降用 SWF をパブリッシュ)でしたら, TextFormatクラス の letterSpacing プロパティ を使えばできます。 ---------------------------------------- System.useCodepage = true; // ★TextFormatクラスのインスタンス myTF を作成 var myTF:TextFormat = new TextFormat(); // ★文字間スペースの量を 10 に設定 myTF.letterSpacing = 10; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { my_txt.text = my_lv.textContent; // ★テキストフィールドに myTF を適用 my_txt.setTextFormat(myTF); } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("myExternalText.txt"); ---------------------------------------- TextFormatクラス自体は FlashMXからでも使用可能です。 letterSpacing プロパティ を使うに Flash 8 以降が必要です。 Flash MX 2004 (FlasjPlayer7)以前はこれは使えません。 また良い方法は知りません。 ちなみに, スタイルシートを適用させるとできるかもしれないと思ってやってみましたが, これも FlashPlayer8 以上にパブリッシュする場合しかうまく行かないようです。 ---------------------------------------- System.useCodepage = true; // ★ TextField.StyleSheetクラスファイルの読み込み import TextField.StyleSheet; // ★TextField.StyleSheetクラスのインスタンス mySS を作成 var mySS:TextField.StyleSheet = new StyleSheet(); // ★スタイルのセット mySS.setStyle("p", {letterSpacing:'10'}); // ★テキストフィールドにスタイルを適用 my_txt.styleSheet = mySS; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { // ★ pタグ の中にテキストを入れる my_txt.htmlText = "<p>"+my_lv.textContent+"</p>"; } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("myExternalText.txt"); ---------------------------------------- その他, 文字の数だけ for文ループなどで createTextField() して, それぞれのテキストフィールドの間隔(_x座標)を操作する。 などという方法もなくはありませんが,あまり良い方法とは言えませんね。
お礼
早速のご回答、ありがとうございます。 当方Flash8です。 出来ました!。でもやはりFlashPlayer8以下でパブリッシュすると見れないですね...。 世間ではどうなのでしょうか?FlashPlayer8以下の方は割合的にまだ多いのでしょうか?