- ベストアンサー
外部テキスト読み込みで改行をなくしたい。
過去のアンサーを見たのですが希望の回答が見つからなかったため質問させていただきました。 フラッシュで外部テキスト読み込みにしているのですが、そのテキストファイルの本文を改行するとフラッシュの中でも改行されてしまいます。 できれば<BR>を記入したところ以外は改行されたくありません。 かといってテキストファイル内で改行を入れておかないと1列で表現することとなり見づらくなります。 解決するにはどうすればいいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Flash MX 以降をお使いであれば、テキストフィールドに名前を付け、condenseWhite というプロパティを true にすると、<BR> タグ以外の改行が無視されるようになります。 (ただし、HTML を ON にしたテキストフィールドの場合のみ、有効です) 例えば、テキストフィールドに” disp ”というインスタンス名を付けたとしますと、 disp.condenseWhite = true; このような書き方になります。 condenseWhite は Flash Player 6 以降で使用できるプロパティですが、Flash MX では、正式にはサポートされていない(ヘルプに説明がなく、キーワードにもなっていない)ようです。 しかし、Flash MX で確認してみたところ、なぜか正常に動作しました ^^; --------------------------------------------------- 以下は、condenseWhite プロパティを false にしている、あるいはこのプロパティを操作できない場合の話です。 お使いのOSは Windows でしょうか? Windows に付属のメモ帳は、改行を LF と CR という、2つのコードで記録します。 ところが、Flash では LF または CR のどちらか1つだけでも改行と見なすので、メモ帳で保存したテキストファイルを読み込むと2回改行されてしまいます。 それとは別に、HTML タグ使用時の改行ですが。 実は、テキストファイルにキーボードで改行を入れると、HTML タグを使う場合でも、これはこれで改行と見なされます。 つまり、Windows のメモ帳で test=<B>テスト</B><BR> <I>サンプル</I> と書いて Flash で表示させると、 テスト サンプル このように、<BR> + LF + CR で計3回も改行されてしまいます。 このあたりはブラウザで表示する HTML とは少々違うルールになっていますので、ご注意ください。 結論をまとめますと。 まず、Windows のメモ帳は LF と CR の2つでしか改行を記述できません。メモ帳で作成したテキストファイルを読み込んだ時は、<BR> タグを省いたとしても必ず2回改行されます。 他のテキストエディタには、改行コードを指定して保存できるものもあります。 この機能のあるエディタか、既存のテキストファイルの改行コードを変換できるツールを入手し、改行コードが LF か CR のどちらか1つだけ(どちらでも構いません)で保存されているテキストファイルを作ってください。 Windows をお使いでしたら、TeraPad というエディタがオススメです。 無料ですし、インストールも使い方も簡単です。 ダウンロードサイト Vector から、入手できます。 ・Vector:TeraPad http://www.vector.co.jp/soft/win95/writing/se104390.html テキストファイル本文に直接改行を入れる場合は、HTML タグを使う場合であっても <BR> タグは不要です。 (ただし、condenseWhite プロパティが false の時に限ります。デフォルトでは false です) 改行コードを LF か CR 1つで記録したとしても、<BR> タグを入れてテキストファイル内で改行すると、<BR> +改行コードで2回改行され、余計な空行ができてしまいます。 スクリプトで文字列を操作する方法をご存知であれば、余分な改行コードをスクリプトで削除して改行しないようにする方法も考えられます。 しかし、いちいちこんなことをするよりは、最初から改行コードに気を付けてテキストファイルを作る方が、ずっと簡単です。 冒頭の condenseWhite が使用できない、あるいはこれでは上手くいかない場合や、HTML を利用しないテキストフィールドで改行を扱う時は、テキストファイルを作る時点で工夫してみてください。
お礼
大変わかりやすく、私の悩みが読むうちにすっきり解消されました。 私の場合、 condenseWhiteが都合がいいかもしれません。 早速試してみます。 ありがとうございました。