読者です 読者をやめる 読者になる 読者になる

RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~

AIR for iOS+AndroidでSmartPhone Game ハイブリッドアプリ開発

最近作ったアプリ
100億本の抜け毛 100億匹のモナー DQ3闘技場アプリ モナーペット(進化)

スマフォでも使える、縁取り文字生成メソッド

AIR for Android AIR for iOS

AIRでモバイル向けに、レンダリングモードを高速なGPUにすると、フィルター>光彩>強さ5000%とかで作る、便利な縁取り文字が作れなくなります。そんなとき下記メソッドを使ったところ、縁取り文字を出せるようになりました。

まず縁取り成功したモバイルのキャプチャ(ニコニコ風コメント部分。処理軽くするために、edgeCountを低くして、エッジの見た目を犠牲にしてます。)
f:id:hisashi_vc:20140303161114j:plain

メソッドのダイジェスト。
シンプルな処理なので、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.)
}