[*1] テキストファイルでは、プラットフォームにより、使用される改行コードが異なります。Macintoshは"\r"、Windowsでは"\r\n"が使われ、UNIXで使用されるのがnewline("\n")です。
[*2] ただし、TextField.textプロパティにnewline(または"\n")を含む文字列が設定されると、改行コードは復帰文字"\r"に変わるので、注意が必要です。たとえば、TextFieldインスタンスmy_txtを配置したタイムラインに、つぎのフレームアクション(スクリプト001)を設定してみます。
スクリプト001■改行文字の挿入された文字列の変数をTextField.textに設定
var my_txt:TextField;
var my_str:String = newline;
my_txt.text = my_str;
|
[ムービープレビュー]で[変数のリストアップ]([デバッグ]メニュー)を行うと、つぎのような内容が[出力]されます。変数の改行コードは"\n"なのに、TextField.textプロパティに設定された文字列では"\r"に変化しています。
変数 _level0.my_str = "\n"
テキスト編集: ターゲット="_level0.my_txt"
...[中略]...
text = "\r",
[*3] newlineの前に加算演算子+で文字列や数値を、変数に入れず直接(プリミティブ値として)連結すると、"\n"でなく"\r"に変化してしまうようです(Flash 8/MX 2004/MX/Mac OS X & Windows XP)。ただ、undefinedやnullでは"\n"のまま変わらないので、厳密にプリミティブ値の現象という訳ではありません。
スクリプト002■newlineを他の値や変数と連結
var empty_str = "";
var my0_str = newline;
var my1_str = ""+newline;
var my2_str = empty_str+newline;
var my3_str = ""+newline+empty_str;
var my4_str = empty_str+newline+"";
var my5_str = 0+newline;
var my6_str = String(0)+newline;
var my7_str = true+newline;
var my8_str = undefined+newline;
var my9_str = NaN+newline;
|
[ムービープレビュー]で[変数のリストアップ]([デバッグ]メニュー)を行うと、つぎのような内容が[出力]されます。
変数 _level0.my0_str = "\n"
変数 _level0.my1_str = "\r"
変数 _level0.my2_str = "\n"
変数 _level0.my3_str = "\r"
変数 _level0.my4_str = "\n"
変数 _level0.my5_str = "0\r"
変数 _level0.my6_str = "0\n"
変数 _level0.my7_str = "true\r"
変数 _level0.my8_str = "undefined\n"
変数 _level0.my9_str = "NaN\n"