AS3_テキストのBitmap化と正規表現との比較?!
//テキストフィールドから一文字ずつテキストを抜き出して、配列に入れてビットマップ化!!
抜き出したテキストを任意の文字列か比較して、漢字だったら赤くするサンプル
ソースはこんなかんじです。
package { import flash.display.MovieClip; import flash.text.*; import flash.display.Bitmap; import flash.display.BitmapData; import RegExp; import MozaicEffect; /** * ... * @author ... */ public class Main extends MovieClip { private var _textList:Array = new Array(); private var tf:TextField = new TextField(); private var tf2:TextField; private var _mozaic:MozaicEffect = new MozaicEffect(); public function Main():void { tf.text = "あいうえお漢字ぁぃぅぇぉアイウエオカAIUEOaiueo亜衣兎"; var pattern:RegExp = /[あ-んぁア-ンア-ンa-zA-Z0-9!。!?、]/; for (var i:int = 0 ; i < tf.length ; i++) { _textList[i] = tf.text.charAt( i ); tf2 = new TextField(); tf2.text = _textList[i]; trace(tf2); if (!pattern.test(tf2.text) ) { tf2.textColor = 0xFF0000; } var bmd:BitmapData = new BitmapData(tf2.width,tf2.height); bmd.draw(tf2); var bmp:Bitmap = new Bitmap(bmd); addChild(bmp); bmp.x =10 + 15 * i; bmp.y = 200; } } } }
正規表現の扱い方は下記のサイトを参考にさせていただきました。
http://itpro.nikkeibp.co.jp/article/COLUMN/20080715/310916/?ST=webdesign&P=1
import RegExp; var pattern:RegExp = /[あ-んア-ンア-ンa-zA-Z0-9!。!?、]/; pattern.test(tf.text)
RegExpクラスをimportしたら
RegExpクラスの変数に文字列を入れてあげる
そしたらRegExpクラスのtest()に比べたい文字列の入った
変数やテキストフィールドを入れてあげる。
あとはif文とかでいろいろ比べて条件分岐とかさせてあげれば
けっこう使えそうです。
単純にテキストをBitmap化するなら
tf(テキストフィールド)をbmdのdraw()の引数にしてあげて
それをBitmapにしてあげるだけでできました
var bmd:BitmapData = new BitmapData(100,50); bmd.draw(tf); var bmp:Bitmap = new Bitmap(bmd); addChild(bmp);
すこしずつBitmap関連の部分がわかるようになってきてうれしいです。