質問: "数字を入力してからボタンを押す。"; とスクリプトを書くと横幅が足らない場合、勝手に改行されます。 自分で任意で改行させて下記のように表示させるにはどうすればよいのでしょうか? <このように表示させたい> 数字を入力してから ボタンを押す。 <現状> 数字を入力してからボタ ンを押す。
回答: flash 5 以降の文法では、c言語や java と同様に、改行のエスケープシーケンス”\n”で、改行を文字列の中に直接挿入できます。 ご質問文の例ですと、 this.message_txt.text = "数字を入力してから\nボタンを押す。"; となります。 actionscript では、\n の代わりに \r でも、同様の動作になります。 ただし、外部テキストから読み込む時は、\n が改行と解釈されず、”\n”という文字列として扱われてしまいます。 #1の方と重なりますが、外部から改行を入れたテキストを読み込むには、改行を表す url エンコードの %0a か %0d を入れます。 ------------------------------------- ワープロやテキストの入力フォームなど文章を入力する場面では、enter キーを押して改行すると、行が変わると同時にカーソルが行の先頭に移動します。 改行といえばこのような動作として、普段は気にしないものですが、よく考えてみるとこの動作は、行を変える動作(改行)と、カーソルを行頭に移動させる動作(復帰)という、2つの動作から成り立っています。 プログラムを考える時は、この細かい違いも考慮しなければならない場合もあります。 テキストファイルに記録する時、文字はいろいろな数字(コード)に変換されて記録されます。 改行もコードに変換して記録されているのですが、厳密には、行を変える”ラインフィード”( lf : ascii コードでは 0x0a )とカーソルを行の先頭に持ってくる”キャリッジリターン”( cr : ascii コードでは 0x0d )という、2つのコードから成り立っています。 テキストを扱い方は、改行のコード lf または復帰の cr 1つでいわゆる改行と見なす処理体系と、lf + cr の2文字で改行の動作と解釈する体系に分かれています。 また、テキストを記録する際に、コードに直す時のルール(エンコード)にも様々な種類があり、改行の動作を lf か cr 1つだけで記録する体系もあれば、従来通り lf + cr で入れる体系もあります。 テキストファイルを作る時は、処理体系がどのように改行を解釈するか、その方針に合わせた改行コードに変換するエンコードで書き出す必要があります。 flash の actionscript は、1文字で改行と見す体系に当たります。 しかも、lf と cr どちらも改行と見なしてくれるという、かなり融通の利く設計になっています。 (ちなみに、スクリプトでは \n または \r 、外部テキストでは %0a または %0d のどちらでも改行として解釈される理由は、このためです) しかし、例えばテキストファイルに、改行をコードではなくキーボードの enter キーで改行して記述すると、改行は読み込めるのですが、2回改行されて1行間が空く(目的の改行+空行)場合があります。 これはおそらく、テキストファイルに改行のためのコードとして 0x0a と 0x0d の2つが記録され、改行が2つ入っているものと解釈されているためと思われます。 改行に限らず、特殊な文字が入ったテキストを読み込む時は、url エンコードを利用した方が無難です。 その他の特殊文字のコードについては、下記のページをご参考になさってください。 ・url エンコーディング: テキストファイルからの特殊文字の読み込み http://www.macromedia.com/jp/support/flash/ts/documents/url_encoding.htm