ActionScriptで文字の縁取りをする
ActionScriptで縁取り文字を表示したい場合、複数のテキストフィールドを作って、それらを上下左右に重ねて表示することで、それっぽいものができます。
ソースコードは以下のような感じです。
function createTF(mc:MovieClip, instname:String, x:Number, y:Number, w:Number, h:Number){ var depth = mc.getNextHighestDepth(); return mc.createTextField(instname, depth, x, y, w, h); } var format:TextFormat = new TextFormat; format.size = 15; format.bold = true; var tf1:TextField = createTF(_root, "NormalText", 40, 40, 230, 40); tf1.text = "縁取りなしのテキストです。"; tf1.setTextFormat(format); function createEdgeText(text:String, mc:MovieClip, instname:String, x:Number, y:Number, w:Number, h:Number, fmt:TextFormat):Void { var px:Array = [0, 1, 0, -1, 1, -1, 1, -1]; var py:Array = [1, 0, -1, 0, 1, -1, -1, 1]; var tf:TextField; for(var i:Number = 0; i < 8; ++i){ tf = createTF(mc, instname+i, x + px[i], y + py[i], w, h); tf.text = text; tf.setTextFormat(fmt); } tf = createTF(mc, instname, x, y, w, h); tf.text = text; tf.textColor = 0xffffff; tf.setTextFormat(fmt); } createEdgeText("こちらが縁取りしたテキストです。", _root, "EdgeText", 40, 80, 230, 40, format);
今回のサンプルではTextFormatでboldを指定しています。別に必須というわけではないですが、これがないと、環境によっては汚く見えてしまうことがあるようです。