Flex中的TextInput (4):控件化
发布时间:2020-12-15 05:02:42 所属栏目:百科 来源:网络整理
导读:让前面的代码形成TextInput控件。 ? TextInputComponent.as package {import Component.MyTextInput;import flash.display.Sprite;public class TextInputComponent extends Sprite{public function TextInputComponent(){var txt1:MyTextInput = new MyText
让前面的代码形成TextInput控件。 ? TextInputComponent.as package { import Component.MyTextInput; import flash.display.Sprite; public class TextInputComponent extends Sprite { public function TextInputComponent() { var txt1:MyTextInput = new MyTextInput(100,100,200,20); addChild(txt1); var txt2:MyTextInput = new MyTextInput(100,130,300,15); addChild(txt2); } } }
package Component { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import skins.Border; public class MyTextInput extends Sprite { private var _w:int; private var _h:int; private var _x:int; private var _y:int; public function MyTextInput(x:int,y:int,width:int,height:int) { _x = x; _y = y; _w = width; _h = height; CreateChild(); } public function CreateChild():void{ //添加3D边框 var border:Border = new Border(_x,_y,_w,_h); addChild(border); //添加TextField var txt:TextField = new TextField(); txt.type = TextFieldType.INPUT; txt.x = _x + 1; txt.y = _y + 1; txt.width = _w-2; txt.height = _h-2; txt.background = true; txt.backgroundColor = 0xffffff; addChild(txt); } } }
注意:由于边框是背景效果,所以基类改为Shape,保证永远位于文本框的后面。 package skins { import flash.display.Graphics; import flash.display.Shape; import mx.utils.ColorUtil; public class Border extends Shape { //定义高度和宽度 private var _w:int; private var _h:int; private var _x:int; private var _y:int; public function Border(x:int,height:int) { _x = x; _y = y; _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)); } 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(_x,_h); g.drawRect(_x+1,_w - 2,_h); g.endFill(); // outside top g.beginFill(c2); g.drawRect(_x+1,1); g.endFill(); // outside bottom g.beginFill(c3); g.drawRect(_x+1,_y + _h - 1,1); g.endFill(); // inside top g.beginFill(c4); g.drawRect(_x+1,_y+1,1); g.endFill(); // inside bottom g.beginFill(c5); g.drawRect(_x+1,_y + _h - 2,1); g.endFill(); // inside sides g.beginFill(c6); g.drawRect(_x+1,_y+2,_h - 4); g.drawRect(_x+2,_w - 4,_h - 4); g.endFill(); } } }
效果图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读