- package
- {
- import flash.display.DisplayObject;
- import flash.display.Sprite;
- import mx.core.IUITextField;
- import mx.core.UIComponent;
- import mx.core.UITextField;
- [Style(name="paddingLeft", type="Number", format="Length", inherit="no")]
- [Style(name="paddingRight", type="Number", format="Length", inherit="no")]
- [Style(name="paddingTop", type="Number", format="Length", inherit="no")]
- [Style(name="paddingBottom", type="Number", format="Length",inherit="no")]
- public class MessageText2 extends UIComponent
- {
- public function MessageText2()
- {
- super();
- textField = IUITextField(createInFontContext(UITextField));
- setStyle("paddingLeft",5);
- setStyle("paddingRight",5);
- setStyle("paddingTop",5);
- setStyle("paddingBottom",5);
- }
- protected var textField:IUITextField;
- public var text:String = "";
- public var htmlText:String = "";
- public var cornerRadius:Number = 0;
- public var backColor:Number = 0xFFFFFF;
- override protected function createChildren():void{
- //绘制底色
- var sprite:Sprite = new Sprite();
- sprite.graphics.beginFill(backColor,1);
- sprite.graphics.drawRoundRect(0,0,this.width,this.height,cornerRadius);
- sprite.graphics.moveTo(0,this.height/10);
- sprite.graphics.lineTo(-(this.width/25),this.height/3);
- sprite.graphics.lineTo(0,this.height/4);
- sprite.graphics.endFill();
- this.addChild(sprite);
- //加文本框
- this.addChild(DisplayObject(textField));
- textField.width = this.width - getStyle("paddingLeft") - getStyle("paddingRight");
- textField.height = this.height - getStyle("paddingBottom") - getStyle("paddingTop");
- textField.x = getStyle("paddingLeft");
- textField.y = getStyle("paddingTop");
- textField.text = text;
- }
- }
- }
==============================================================================================
<local:MessageText2 width="400" height="100" text="test" cornerRadius="30"/>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
- package
- {
- import flash.display.Graphics;
- import flash.filters.DropShadowFilter;
- import mx.controls.TextInput;
- public class MessageText extends TextInput
- {
- public function MessageText()
- {
- super();
- this.width = 250;
- this.height = 55;
- this.setStyle("cornerRadius","8");
- }
- public var tipDirection:String = "right";
- public var tipWidth:Number = 8;
- public var tipHeight:Number = 10;
- override protected function updateDisplayList(w:Number,h:Number):void{
- super.updateDisplayList(w,h);
- if(this.parent==null) return;
- this.setStyle("borderStyle","solid");
- this.setStyle("borderThickness",0);
- //得到绘制对象
- var gfx:Graphics = this.graphics;
- //清楚原来绘制轨迹
- gfx.clear();
- //设置绘制的颜色以及透明度
- gfx.beginFill(this.getStyle("backgroundColor"),this.getStyle("backgroundAlpha"));
- switch(tipDirection) {
- case 'bottom':
- //剪头向上 整体位于参照物的下方
- gfx.moveTo(w/2 - tipWidth,0);
- //三角形的尖端点
- gfx.lineTo(w/2,- tipHeight);
- gfx.lineTo(w/2 + tipWidth,0);
- break;
- case 'right':
- //剪头向左 整体位于参照物的右放
- gfx.moveTo(0,h/4 - tipWidth);
- //三角形的尖端点
- gfx.lineTo(-tipHeight,h/3);
- gfx.lineTo(0,h/4 + tipWidth);
- break;
- case 'left':
- //剪头想右 整体位于参照物的左方
- gfx.moveTo(w,h/2 - tipWidth);
- //三角形的尖端点
- gfx.lineTo(w+tipHeight,h/2);
- gfx.lineTo(w,h/2 + tipWidth);
- break;
- case 'top':
- //剪头想下 整体位于参照物的上方
- gfx.moveTo(w/2 - tipWidth,h);
- //三角形的尖端点
- gfx.lineTo(w/2,h + tipHeight);
- gfx.lineTo(w/2 + tipWidth,h);
- break;
- }
- // var p:Container = parent as Container;
- //
- var ba:uint = 1; //backgroundAlpha 背景透明度
- var bg:uint = 0xffffff; //backgroundColor 背景颜色
- // //获取容器定义的区域边界信息对象
- // var vm:EdgeMetrics = p.viewMetrics;
- // //设置四个角的圆度
- // var radiusContent:Object = {tl:vm.top,tr:0,bl:0,br:vm.top};
- // //标题栏圆度
- // var radiusTitle:Object = {tl:vm.top,tr:0,bl:0,br:0};
- //画一个圆角矩形,整个背景
- this.dw(0,0,w,h,radiusContent,bg,ba);
- //画一个圆角矩形,标题栏
- this.drawRoundRect(0,0,w,vm.top,radiusTitle,0xff0000,.7);
- //画一个圆角矩形,标题栏的那个高光水晶条
- this.drawRoundRect(0,0,w,vm.top / 2,radiusTitle,0xffffff,.3);
- //
- // //下面是画阴影的。
- // var dropShadow:RectangularDropShadow = new RectangularDropShadow();
- // dropShadow.distance = 8;
- // dropShadow.angle = 60;
- // dropShadow.color = 0x000;
- // dropShadow.alpha = 0.4;
- //
- // dropShadow.tlRadius = radiusContent.tl;
- // dropShadow.trRadius = radiusContent.tr;
- // dropShadow.blRadius = radiusContent.bl;
- // dropShadow.brRadius = radiusContent.br;
- //
- // dropShadow.drawShadow(gfx, 0, 0, w, h);
- //
- this.filters = [new DropShadowFilter(2, 90, 0x000000, 0.6, 2, 2, 1, 1, true)];
- //绘制边框
- // gfx.drawEllipse(0,0,w,h);
- // gfx.endFill();
- }
- }
- }
tools
最新推荐文章于 2024-09-03 22:16:22 发布