Flex中的TextInput (4):控件化

2024-04-03 09:18
文章标签 控件 flex textinput

本文主要是介绍Flex中的TextInput (4):控件化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

让前面的代码形成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);
}
}
}


MyTextInput.as

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);
}
}
}


Border.as

注意:由于边框是背景效果,所以基类改为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,y:int,width: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), 
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, _y, _w, _h);
g.drawRect(_x+1, _y, _w - 2, _h);
g.endFill();
// outside top
g.beginFill(c2);
g.drawRect(_x+1, _y, _w - 2, 1);
g.endFill();
// outside bottom
g.beginFill(c3);
g.drawRect(_x+1, _y + _h - 1, _w - 2, 1);
g.endFill();
// inside top
g.beginFill(c4);
g.drawRect(_x+1, _y+1, _w - 2, 1);
g.endFill();
// inside bottom
g.beginFill(c5);
g.drawRect(_x+1, _y + _h - 2, _w - 2, 1);
g.endFill();
// inside sides
g.beginFill(c6);
g.drawRect(_x+1, _y+2, _w - 2, _h - 4);
g.drawRect(_x+2, _y+2, _w - 4, _h - 4);
g.endFill();
}
}
}


 

效果图:

这篇关于Flex中的TextInput (4):控件化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/872506

相关文章

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

MFC 控件重绘(2) NM_CUSTOMDRAW, WM_DRAWITEM, 虚函数DrawItem

控件重绘有三种方法: 1 设定界面属性 2 利用Windows的消息机制,通过Windows消息映射(Message Mapping)和反映射(Message Reflecting),在合适的时机修改控件的状态和行为。此方式涉及NM_CUSTOMDRAW和WM_DRAWITEM 3 利用虚函数机制,重载虚函数。即DrawItem虚函数。 对于NM_CUSTOMDRAW,某些支持此消息的控件

C# 通过拖控件移动窗体

目录 引言一、通过控件事件移动窗体1、创建窗体界面2、添加控件事件3、添加代码 二、通过windowsAPI移动窗体1、 构建窗体和添加事件2、代码展示 引言 在C#Form窗体设计中,如果我们不需要使用默认边框设计自己个性化的窗体(FromBorderStyle=none时),这时候你会发现拖动窗体的功能就没有了,这里需要自己构建方法让用户可以拖动整个窗体,这里我们使用前辈的

Qt-常用控件(3)-多元素控件、容器类控件和布局管理器

1. 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别,以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件.QTableView 自身不持有数据,使用 QTab