LikeTextInput.as
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class LikeTextInput extends Sprite
{
private var w:int;
private var h:int;
public function LikeTextInput()
{
w = 200;
h = 20;
CreateChild();
}
public function CreateChild():void{
//添加3D边框
var border:Border = new Border(w,h);
addChild(border);
//添加TextField
var txt:TextField = new TextField();
txt.type = TextFieldType.INPUT;
txt.x = 11;
txt.y = 11;
txt.width = w-2;
txt.height = h-2;
txt.background = true;
txt.backgroundColor = 0xffffff;
addChild(txt);
}
}
}
Border.as
package {
import flash.display.Graphics;
import flash.display.Sprite;
import mx.utils.ColorUtil;
public class Border extends Sprite
{
//定义高度和宽度
public var w:int;
public var h:int;
public function Border(width:int,height:int)
{
w = width;
h = height;
drawBorder();
}
public function drawBorder():void
{
//定义边框颜色
var borderColor:uint;
var borderColorDrk1:uint
var borderColorDrk2:uint
var borderColorLt1:uint
var borderInnerColor:uint;
//设定边框颜色
borderColor = 0xb7babc;
borderColorDrk1 =
ColorUtil.adjustBrightness2(borderColor, -40);
borderColorDrk2 =
ColorUtil.adjustBrightness2(borderColor, +25);
borderColorLt1 =
ColorUtil.adjustBrightness2(borderColor, +40);
borderInnerColor = 0xffffff;
//画出3D边框效果
draw3dBorder(borderColorDrk2, borderColorDrk1, borderColorLt1,
Number(borderInnerColor),
Number(borderInnerColor),
Number(borderInnerColor));
}
public function draw3dBorder(c1:Number, c2:Number, c3:Number,
c4:Number, c5:Number, c6:Number):void
{
var g:Graphics = graphics;
g.clear();
// outside sides
g.beginFill(c1);
g.drawRect(10, 10, w, h);
g.drawRect(11, 10, w - 2, h);
g.endFill();
// outside top
g.beginFill(c2);
g.drawRect(11, 10, w - 2, 1);
g.endFill();
// outside bottom
g.beginFill(c3);
g.drawRect(11, 10 + h - 1, w - 2, 1);
g.endFill();
// inside top
g.beginFill(c4);
g.drawRect(11, 11, w - 2, 1);
g.endFill();
// inside bottom
g.beginFill(c5);
g.drawRect(11, 10 + h - 2, w - 2, 1);
g.endFill();
// inside sides
g.beginFill(c6);
g.drawRect(11, 12, w - 2, h - 4);
g.drawRect(12, 12, w - 4, h - 4);
g.endFill();
}
}
}
效果图: