スマフォでも使える、縁取り文字生成メソッド
AIRでモバイル向けに、レンダリングモードを高速なGPUにすると、フィルター>光彩>強さ5000%とかで作る、便利な縁取り文字が作れなくなります。そんなとき下記メソッドを使ったところ、縁取り文字を出せるようになりました。
まず縁取り成功したモバイルのキャプチャ(ニコニコ風コメント部分。処理軽くするために、edgeCountを低くして、エッジの見た目を犠牲にしてます。)
メソッドのダイジェスト。
シンプルな処理なので、AIRじゃなくても応用できると思います。
public static function setTxtBorderLine(t0:TextField, color:int=0, boldSize:Number=4, edgeCount:int=8):Array{ var x:Number = t0.x; var y:Number = t0.y; var s:String = t0.htmlText; var p:DisplayObjectContainer = t0.parent; var tf:TextFormat = new TextFormat(); tf.color = color; var a:Array = []; var hosei:Number = boldSize/2; f(x+boldSize+hosei, y); f(x+boldSize+hosei, y+boldSize); f(x-boldSize+hosei, y); f(x+hosei, y-boldSize); if(edgeCount > 4){ var b2:Number = boldSize*0.8;// * 0.7; f(x+b2+hosei, y+b2); f(x+b2+hosei, y-b2); if(edgeCount > 6){ f(x-b2+hosei, y-b2); f(x-b2+hosei, y+b2); } } Com.HD(t0);//最前面にするメソッド処理(set highest depth.) function f(x:Number, y:Number):TextField{ var t:TextField = Com.TXT(p, s);//テキストつくるメソッド(create text field) t.setTextFormat(tf); Com.XY(t, x, y);//位置指定メソッド処理(positioning) a.push(t); } return a;//borderLineに使ったテキスト一式(border line texts.) }