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

テキストフィールドを設けて、ダイナミックテキストを使って変数名を指定し、外部エディタに書いた内容をそのフィールドに読み込む簡単なFLashを作りました。

実際にうまく動いてフィールド内に、エディタの文章が表示さるのですが、なぜか設定しておいたフィールド幅では自動で改行されず、一列にだらだらと表示してしまいます。しかも、FLASHのサイズ自体は大きくならない為に、画面から見切れてしまっている状態です。
もちろんエディタ内で改行も試しましたが、そうすると段落が変わってしまって一つ飛びのように表示されてしまいます。

うまくフィールド幅で自動改行する方法をご存じの方いらっしゃいましたらご助言お願いします。

A 回答 (1件)

Flash MX 以降の Flash をお使いでしたら、ダイナミックテキストに設定したテキストフィールドは TextField クラス( Flash MX ではオブジェクト)で細かく制御できます。



TextField クラスが持っている wordWrap というプロパティで、テキストフィールドの端でテキストを折り返すかどうかを設定できます。true で折り返しあり、false で折り返しなしです。
折り返しあり、つまり wordWrap プロパティを true にすると、テキストフィールドの幅よりも1行(改行コードまで)が長くて収まりきらない時は、フィールドの右端でテキストが折り返されて、次の行に続きます。


まず、テキストフィールドにインスタンス名を付けてください。
ここでは仮に、” disp ”と付けたとします。
このテキストフィールドで、折り返しありで複数行を表示可能にするスクリプトは、次のようになります。
スクリプトは、ステージにあるテキストフィールドに関する設定ならば、メインのタイムラインのフレームに設定するのが一般的かと思います。

(↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください)


 //Sift-JISで読み込む
 System.useCodepage = true;
 loadVariables( "***.txt" , this );

 //ダイナミックテキストの設定
 //複数行・折り返しなしに設定する
 disp.multiline = true;
 disp.wordWrap = true;


multiline プロパティは複数の行を表示できるようにするかどうかの設定で、true で複数行、false で単一行になります。
テキストフィールドを選択した状態で「プロパティ」パネルを見ると、パネルの中央あたりに表示する行を設定できるリストがあります。このリストから「複数行」を選択した時は、multiline プロパティは true に設定されています。


Flash 5 をお使いですと、Flash 5 には TextField クラスがないのでスクリプトによる制御はできませんが、「テキストオプション」の”ワードラップ”の項目にチェックを入れると、wordWrap = true と同じ設定になります。
    • good
    • 0

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