- 2009-01-29 (木) 11:37
- ActionScript3.0 | Progression
昨日の夜のこと
northprintさまとメッセをしていたら、StringUtilクラスのcollectBreakを思いっきりスルーしていたことに気がつきまして…
以下メッセの内容を簡単に…
(northprintさん)使ってみたんですけど、StringUtilクラスのcollectBreakって、凄いですよね~!
(flabaka)まだ触ってないです…
(northprintさん)Windowsで、改行がCR+LF形式で保存されたデータを読み込む際の(改行が2行になっちゃう)バグを取ってくれますよ~
(flabaka)それは凄い…
と、まぁ、こんなやり取りがありまして…
あれっ? でもStringUtilクラスって、僕、数日前にエントリしたよなぁ…。collectBreakなんてあったかなぁ…
で、数日前のエントリ(StringUtilクラスを使ってみる)を見てみたら…
collectBreak、思いっきりスルーしていました!
ってな訳で、(僕一人で悦に入ってても意味がないので)今日はcollectBreakを使ってみました! というエントリです。
テキストを用意する
読み込むテキストを用意します。
あいうえお かきくけこ さしすせそ
このデータを、エンコードをUTF8。改行方法をCR+LFで保存しておきます。
Progressionで外部テキストを読み込んでみる
何通りか方法があると思いますが、今回はURLLoaderを使ってみました。
private var txt:TextField;
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.width = 200;
txt.setTextFormat( new TextFormat(null,20));
addChild(txt);
(略)
var loader:URLLoader = new URLLoader(new URLRequest("sample.txt"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
txt.text = loader.data;
});
これを実行すると、こんな感じになります。
テキスト側では改行が1行なのに、読み込んでみたら改行が2行になっています…
collectBreakを使ってみる
そこで、collectBreakの出番です!
private var txt:TextField;
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.width = 200;
txt.setTextFormat( new TextFormat(null,20));
addChild(txt);
(略)
var loader:URLLoader = new URLLoader(new URLRequest("sample.txt"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
//collectBreakを適用させる
var mytxt:String = StringUtil.collectBreak(loader.data);
//collectBreakを適用させたデータを、テキストフィールドに
txt.text = mytxt;
});
これを実行してみると…
テキスト通りに改行が1行になってくれました!
試しに、先のテキストデータをエンコードUTF8。改行方法をCRのみで保存(sample2.txt)して、以下のコードを実行してみると…
private var txt:TextField;
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.width = 200;
txt.setTextFormat( new TextFormat(null,20));
addChild(txt);
(略)
var loader:URLLoader = new URLLoader(new URLRequest("sample2.txt"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
txt.text = loader.data;
});
テキストデータと同じく、改行は1行で表示されました。
どうやら、CR+LF形式で保存した場合のみの現象(バグ)みたいですね。
CR+LF形式で保存されたテキストデータを読み込む際には、collectBreakを使ってあげると良さそうです~!
- Newer: Adobe MAX&SceneIdUtilクラスを使ってみる
- Older: DateUtilクラスを使ってみる
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://flabaka.com/blog/wp-trackback.php?p=409
- Listed below are links to weblogs that reference
- collectBreakを思いっきりスルーしてました from flabaka
- pingback from blog.progression.jp» ブログアーカイブ » [お知らせ] 今週の Progression 関連エントリー(2009/01/24 ~ 2009/02/16) 09-02-07 (土) 2:36
-
[...] flabaka / collectBreakを思いっきりスルーしてました [...]

