• ベストアンサー

ダイナミックテキストに読み込んだテキストを改行させるにはどうすればよいのでしょうか?

Windows XP SP2 FLASH MX 2004を使用しております。 ダイナミックテキストのインスタンス名をmessage_txtとして this.message_txt.text = "数字を入力してからボタンを押す。"; とスクリプトを書くと横幅が足らない場合、勝手に改行されます。 自分で任意で改行させて下記のように表示させるにはどうすればよいのでしょうか? <このように表示させたい> 数字を入力してから ボタンを押す。 <現状> 数字を入力してからボタ ンを押す。

  • Flash
  • 回答数2
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

書かれているサンプルの場合, this.message_txt.text = "数字を入力してから" + newline + "ボタンを押す。"; でうまく行くといます。newlineがキャリッジリターン(改行コード)です。 こちらは良い参考URLが見つかりませんでした。ヘルプあたりには少し書いてあります。 また,外部テキストの1行テキストデータに改行を入れる場合,外部テキストデータは, message_txt=数字を入力してから%0Dボタンを押す。 とします。 こちらの参考URLは http://www.macromedia.com/jp/support/flash/ts/documents/fl0159.html http://hima.chu.jp/flash/tips/shiftjis.htm です。

参考URL:
http://www.macromedia.com/jp/support/flash/ts/documents/fl0159.html,http://hima.chu.jp/flash/tips/shiftjis.htm
nana_watuki
質問者

お礼

this.message_txt.text = "数字を入力してから" + newline + "ボタンを押す。"; 上記を試したところ改行することができました。 また、外部テキストデータも問題なく表示することができました。 ご回答いただきどうもありがとうございました。

その他の回答 (1)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

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

nana_watuki
質問者

お礼

newline 以外にも \n、\r で改行ができることがわかり勉強になりました。 ご回答いただきどうもありがとうございました。

関連するQ&A

  • テキストフィールド+UIScrollBarについて

    外部ファイルをダイナミックテキストとしてテキストフィールドに読み込んでいます。 System.useCodepage = true ; loadVariablesNum("test.txt", 0); UIScrollBarでターゲットをテキストフィールドのインスタンス名を指定するのですが、スクロールバーが表示されません。FLASH初心者ですが、助言などありましたら、お願いします。 2004MX Profationalです。

    • ベストアンサー
    • Flash
  • FLASH外部テキスト読込 タグを読まない

    FLASHの外部テキスト読み込み お世話になります。 アクションスクリプトがあまり分かりません(^^;) FLASH MXの外部読み込みで質問があります。 ボタンクリックで外部テキストとjpgを読み込みたいのです。 Scrollber(コンポーネント)のtarget TextFirldに ダイナミックテキストのインスタンス名を入れると スクロールはするのですが、txtファイル内のタグが 露出してしまいます。 target TextFirld、ダイナミックテキストからそれらを 除くとタグは効くようになるのですが、今度は長文でも スクロールバーが動かなくなります。 ◆ステージの1フレーム目 -------------------------------------- System.useCodepage = true; disp.condenseWhite = true; loadVariables("text/01.txt", "bun"); loadMovie("img/a.jpg", "jpeg"); ◆テキスト1ボタン -------------------------------------- on (press) { loadVariables("text/01.txt", bun); loadMovie("img/a.jpg", jpeg); } ◆テキスト2ボタン -------------------------------------- on (press) { loadVariables("text/02.txt", bun); loadMovie("img/b.jpg", jpeg); } ◆ムービークリップ名:jpeg ◆ダイナミックテキストインスタンス名:bun タグが効くようになるにはどうすればよいでしょうか? どうぞよろしくお願いしますm(_ _)m

  • 外部テキストファイルから数字しか読み込まない現象について

    FLASH MX 初心者です。 外部テキストファイルから文字データを読みこませたいのですが、ムービープレビューでチェックすると 数字以外の文字データが読み込まれていません。FLASHの設定は文字のプロパティで、 テキストの種類:ダイナミックテキスト フォント:_ゴシック(デバイスフォントにしました) 行タイプ:複数行(複数行にわたるため) 変数:txt としています。 テキスト読み込みのアクションスクリプト内1行目には『System.useCodepage = true; 』をいれました。 またテキストファイルは文章の改行部分を『%0D%0A』で区切り、問題なく機能しています。 何が原因でテキストファイルにある数字以外の文字(漢字体・英字体)が表示されないのでしょうか。 環境 OS:WindowsXP(SP2) アプリケーション:FLASHI MX 7.2 よろしくお願いします。

    • ベストアンサー
    • Flash
  • UNIXで、とあるテキストに対して2文字区切りで改行をいれるには?

    UNIXのシェルスクリプトで、このような動作ができないものかどうか考えています。 あるテキストファイルの内容を、2文字ごとに区切って改行を入れるように加工する 例えば file1.txt が以下のような内容であれば --file1.txt-- 000092 027301 01 0263000001 2文字ずつ区切って改行を挿入したファイル --file2.txt-- 00 00 92 02 73 01 01 02 63 00 00 01 を生成したいと思います。 ここで元のファイルは必ず、半角の数字のみで構成されており、 1行の文字数は最低2文字以上あり、なおかつ奇数個の文字列は存在しないものとします。 awk や grep や sed を組みあわせて考えているのですが、 なかなか解決に至りません。 どなたかお知恵を拝借願います。

  • 外部テキストのランダム表示

    Flash初心者です。 ソフトは Flash MX 2004 をつかっています。 質問なんですが、 ボタンを作るとき、マウスがボタンの上にあるとき 一言コメントが出るようにしたいのですが、 そのコメントが何種類かあって、それをランダムで表示させたいです。 外部テキストで出来ると聞いたのですがやり方がまったくわかりません。 onClipEvent(load){ this.loadVariables("text.txt"); } で文字は読み込めたのですが、全部読み込んでしまってどうやってランダムにしたらいいかがわかりません。 どうかお答えお願いします!

  • 読み込んだ外部テキストのHTMLを有効にする。

    this.createTextField("my_txt", 10, 5, 60, 205, 240); my_txt.textColor = 0x333333; my_txt.html = true; my_txt.htmltext = _level0.allentry; my_txt.htmlText = this.allentry; 質問させてください。 上記のスクリプトで外部テキストを読み込んでいます。 変数allentryにはhtmlから変数を渡して、外部テキスト(MTのエントリ)を読み込んでいます。 読み込んだ外部テキストのhtmlタグの部分が表示されなくなってしまいます。 イメージタグなら、<img= とだけ表示されてその後の文章が表示されません。 どうしたらいいでしょうか? アドバイスをいただきたいです。 よろしくお願いします。 私が使っているのは、 windows xp Flash MX 2004 です。

  • テキストファイルを読み込むアクションは

    windows2000 Flash MX 外部画像ファイル(**.jpg)は loadMovie("**.jpg")で読み込めますが、外部テキストファイル(**.txt)を読み込むアクションスクリプトが解りません。 恐縮ですが例文を示していただけませんか。

    • ベストアンサー
    • Flash
  • flashmx2004でのダイナミックテキスト内印刷

    どうもはじめまして、flashの初心者です。 どうしてもできないコトがあるので質問させていただきます。 外部からダイナミックテキスト内にテキストファイルを読み込んでその読み込んだテキストのみを印刷できるのでしょうか? on (release) { print("InstanceName_2","bmax"); } や on (release) { getURL("print:InstanceName_2"); } では、全体が印刷されてしまいます。 環境はWINXP・2004MXです。 ちなみに「InstanceName_2」はダイナミックテキストのインスタンス名で上記スクリプトはボタンに記述しております。 printjobを使用してやってみてもできませんでした。 ムービークリップはできるみたいなんですが。。。 皆様の知恵をお貸しください。それでは宜しくお願いいたします。

  • テキストエリア内で改行するには。

    次のスクリプトを実行すると、テキストエリア内に 01234560 と数字が表示されますが、これを 0 1 2 . というように改行も含めてテキストエリアに出力するにはどうすればよいでしょうか。 ¥nという文字を使用するのでしょうか? <html> <head> <script language="JavaScript"> <!-- var textA="" function my1() {for (i=0;i<11;i++){textA=textA+new String(i)} document.form1.text1.value=textA;} //--> </script> </head> <body> <form name="form1"> <textarea name="text1" size="10"></textarea> <input type="button" value="CLICK!" onClick="my1();"> </form> </body> </html>

  • ボタンを押すと外部テキスト表示

    初心者です。フラッシュはMXです。よろしくお願いします。 ボタンを押すと外部のテキストをテキストフィールドに表示する、というものを作りたいと思っています。過去の記事を検索して、私なりに組み立ててみました。 外部テキストファイル名はphoto01.txtです。読み込みたいテキストはtxt01_1です。 まず、メインにダイナミックテキスト、複数行、変数comentを用意しました。 ボタンは、メインにあるムービークリップthumbnailsの中にあるボタンに、 on (release) { _parent.coment = txt01_1; } というアクションを書きました。 そしてメインのフレームには System.useCodepage = true; this.loadVariables("photo01.txt"); というアクションを書きました。 プレビューしてボタンを押してみたらundefinedと出てしまいました。 意味も全くわからないまま拾い集めて組み立ててみたので、何が悪いかもわかりません。 どなたかぜひ教えてください。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう