Mac OSX の Flash CS3 で現象を確認しました。

ActionScript で改行コードを処理するために ?n や ?r を使用したのですが、認識されませんでした。
改行コードが含まれる str という変数に対して以下の処理をしても結果は -1 (?n がない)となります。

var p = str.indexOf("?n");
trace(p);


調べたところ下記に原因と対策が書かれていました。
FN0512003 – \r\nが改行コードとして認識されない – Flash : テクニカルノート

原因は

Flash 8/Mac OS Xでは、円記号(\)がエスケープ文字として認識されないようです

Flash MX 2004 から発生しているようです。

対策は

エスケープ文字として半角バックスラッシュ(\)を使います。

ActionScript を表示するフォントをデフォルトの[Osaka−等幅]だと半角バックスラッシュが全角のように表示されます。詳しくはリンク先を参照してください。

関連する投稿