こんばんは。きんくまです。
サーバから画像を取得するところでいきなりつまってしまいました。とりあえずその辺はまとまったらお知らせするとして、今回は表題の件です。
それで、サーバーとASの画像がらみで検索をかけていたら、下記のサイトが見つかりました。ありがとうございます。
Flashから画像ファイルを保存する
この例では私のやろうとしていることと逆のことをしています。
例)ASから画像取得→サーバーで画像保存。
私)サーバーで画像取得→保存しないでASに渡す→ASでBitmap化
ですが、とりあえずサンプルを試そうとしました。するとこんな感じにコピーされます。
1. package { 2. import flash.display.Sprite; 3. import flash.display.Bitmap; 4. import flash.display.BitmapData; 5. import flash.events.Event; 以下略
このままのソースだと各行の先頭の行番号が邪魔なので、動きません。
それを消すようにしたいと思って作ったのが上のswfです。
使い方
1.入力文字列にさっきの文字をペースト
2.正規表現に以下を入力
rs*d+.s|^s*d+.s
3.置換文字列に以下を入力
n
4.置換ボタンを押す。
以上です。
それで、このサンプルを作っててわかったことなんですが、TextArea、TextFieldの改行コードってrなんですね。
たとえば、
var s:String = "anb"; var tf:TextField = new TextField(); tf.text = s; s = tf.text;
とかやると普通は、s = "anb"とか思いますよね?だけどこれだと正規表現でnでひっかからなかったんです。なんかテキストエリアにつっこんだときに自動的にnはrに置き換わってしまっているんです。
最初それがわからなくて困ってしまいました。もちろんTextFieldなんかにつっこまなければ、勝手におきかわることもないんでnでひっかかります。
今回のソースは以下のものです。
func_btn.addEventListener(MouseEvent.CLICK, replace); function replace(e:MouseEvent):void { var s:String = input_txt.text; var reg:RegExp = new RegExp(reg_txt.text, "gi"); var s2:String = getReplaceStr(); s = s.replace(reg, s2); input_txt.text = s; } function getReplaceStr():String { var s:String = replace_txt.text; s = s.replace(/\r|\n|\r\n/gi, "n"); return s; }
それで、getReplaceStrのところなんですが、置換文字列に、nとかrをスクリプトに直接書いた場合、きちんと改行の動作をします。だけど、TextFieldから拾ってきたものをそのままreplaceの第二引数にもってくるとうまく動作しなかったので、こんな感じにしています。って、文章だとよくわかんないと思いますけど、、。
今回はここまで。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ