`

Flex Label组件扩展边框与背景

阅读更多

由于Label控件没有borderStyle属性,也就是它不支持边框与背景图.所以我们可以通过扩展Label控件来实现边框与背景图!其他不 支持边框或者背景的控件如:Text、Image用同样方法可以扩展它。下面运用到自定义Flex控件的[Style]元素标签。

下表描述了[Style]元数据标签的属性:

table { padding: 0px; margin: 0px; border-left: 1px solid rgb(193, 218, 215); width: 728px; }th { border-right: 1px solid rgb(193, 218, 215); padding: 6px 6px 6px 12px; border-top: 1px solid rgb(193, 218, 215); background: none no-repeat scroll 0% 0% rgb(202, 232, 234); font: bold 12px "Trebuchet MS",Verdana,Arial,Helvetica,sans-serif; text-transform: uppercase; color: rgb(79, 107, 114); border-bottom: 1px solid rgb(193, 218, 215); letter-spacing: 2px; text-align: center; }td { border-right: 1px solid rgb(193, 218, 215); padding: 6px 6px 6px 12px; font-size: 12px; background: none repeat scroll 0% 0% rgb(255, 255, 255); color: rgb(79, 107, 114); border-bottom: 1px solid rgb(193, 218, 215); }#totalbar { visibility: hidden; }#onlinebar { visibility: hidden; }#category { visibility: hidden; }#FCRadar { visibility: hidden; }#daypic { visibility: hidden; }

选项 类型 描述
name
String (必须) 指定样式名称。
type
String 指定样式属性值的数据类型。如果类型不是一个像Number、Date这样的ActionScript类型,就要使用 packageName.className。
arrayType
String 如果type是Array,那么arrayType指定Array元素的数据类型。如果类型不是一个像Number、Date这样的ActionScript类型,就要使用 packageName.className。
format
String 指定属性单元。比如,如果你指定类型为”Number”,你可能指定format=”Length”表示该样式定义像素长度。或者,你指定type=”uint”,设置format=”Color”,表示该样式定义一个RGB颜色。
enumeration
String 指定该样式属性可能的枚举列表值。
inherit
String 指定该属性是否为继承的。有效的值为yes和no。该属性引用CSS继承结构,而非面向对象的继承结构。所有的子类都自动用面向对象的继承从超类 继承定义的样式属性。一些样式属性以CSS继承的方式继承样式属性。如果你在父容器上定义了一个可继承的样式属性,它的孩子都会继承该样式属性。比如,如 果你把一个Panel容器的fontFamily定义成Times,该容器的所有孩子都会使用Times作为fontFamily,除非它们覆盖了这个属 性。如果设置了非可继承的样式,比如在父容器上设置textDecoration,那么只有这个父容器而非它的孩子使用这个样式。更多关于可继承的样式属 性的信息,请阅读 关于样式继承
states
String 对于皮肤属性,你可以使用这个样式指定组件多种状态中的一种状态。例如,Slider.thumbSkin样式的定义使用下面的[Style]元数据标签:[Style(name="thumbSkin", type="Class", inherit="no", states="disabled, down,
over, up")]
这一行说明你可以使用Slider.thumbSkin样式指定Slider控件的disable, down, over, 和 up 的状态。更多信息,请阅读 创建皮肤 .

LabelBorder.as

  1. package  
  2. {
  3.     import   mx . controls . Label ;
  4.     //自定义样式
  5.     [ Style ( name = " borderColor " , type = " uint " , format = " Color " , inherit = " no " )]   
  6.     [ Style ( name = " borderWidth " , type = " Number " , format = " Length " , inherit = " no " )]   
  7.     [ Style ( name = " borderAlpha " , type = " Number " , format = " Length " , inherit = " no " )]  
  8.    
  9.     public   class LabelBorder extends Label
  10.     {
  11.         public   function LabelBorder ()
  12.         {
  13.             super () ;
  14.         }
  15.        
  16.         override   protected function updateDisplayList ( w : Number , h : Number ) : void
  17.         {
  18.             super . updateDisplayList ( w , h ) ;
  19.             graphics . clear () ;
  20.             graphics . lineStyle ( getStyle ( ' borderWidth ' ) , getStyle ( ' borderColor ' ) , getStyle ( ' borderAlpha ' ) , false ) ;
  21.             var   x : Number = - ( getStyle ( ' borderWidth ' ) / 2);
  22.             var y:Number = -(getStyle('borderWidth') /   2 ) ;
  23.             var   width : Number = textWidth + getStyle ( ' borderWidth ' ) + 3 ;
  24.             var   height : Number = textHeight + getStyle ( ' borderWidth ' ) ;
  25.             graphics . drawRect ( x , y , width , height ) ;
  26.         }
  27.     }
  28. }

LabelImage.as

  1. package  
  2. {
  3.     import   mx . controls . Label
  4.     import   flash . display . Loader ;
  5.     import   flash . net . URLRequest ;
  6.     //自定义背景属性
  7.     [ Style ( name = " imgPath " , type = " String " , inherit = " no " )]   
  8.    
  9.     public   class LabelImage extends Label
  10.     {
  11.         private   var _loader : Loader = new Loader () ;
  12.        
  13.         public   function LabelImage ()
  14.         {
  15.             super () ;
  16.         }
  17.        
  18.         override   protected function updateDisplayList ( w : Number , h : Number ) : void
  19.         {
  20.             super . updateDisplayList ( w , h ) ;
  21.             _loader . load ( new   URLRequest ( getStyle ( ' imgPath ' ))) ;
  22.             addChild ( _loader ) ;
  23.             _loader . x = - 15 ;
  24.             setChildIndex ( _loader , 0 ) ;
  25.         }
  26.     }
  27. }

LabelBorderDemo.mxml

  1. <? xml version = " 1.0 " encoding = " utf-8 " ?>
  2. < mx : Application   xmlns : mx = " http://www.adobe.com/2006/mxml " xmlns : jian = " * " layout = " absolute " >
  3.     < jian : LabelBorder  
  4.         x = " 180 "   y = " 62 "
  5.         text = " 这里是扩展的自定义标签 "
  6.         borderAlpha = " {aBar.value} "    
  7.         borderWidth = " {wBar.value} "    
  8.         borderColor = " {colorTool.selectedColor} "   / >
  9. <jian:LabelImage text="这里是自定义背景标签" imgPath="mood.gif" x="180" y="100" / >
  10.           
  11.     < mx : Label   x = " 500 " y = " 10 " text = " 边框颜色: " / >  
  12.     <mx:Label x="500" y="50" text="边框透明度:" / >  
  13.     < mx : Label   x = " 500 " y = " 100 " text = " 边框宽度: " / >  
  14.       
  15.     <mx:ColorPicker id="colorTool" x="570" y="10" color="#FDFDFD" / >  
  16.     < mx : HSlider   id = " aBar " x = " 500 " y = " 70 " minimum = " 0 " maximum = " 1 " value = " 1 " snapInterval = " 0.1 " liveDragging = " true " / >  
  17.     <mx:HSlider id="wBar" x="500" y="120" minimum="0" maximum="6" snapInterval="1" value="1" liveDragging="true" /
  18. < / mx:Application>

 

分享到:
评论

相关推荐

    Flex开发的代边框Box以及自定义代checkBox的容器

    在本话题中,我们主要探讨的是如何在Flex中创建一个带有边框的Box容器以及自定义的CheckBox组件,这两种元素在Flex应用中是非常常见的。 首先,让我们来理解边框Box(BorderContainer)在Flex中的作用。...

    flex 带矩形边框的GroupBox.

    6. **自定义组件**:如果你的需求非常特殊,可能需要创建自定义的GroupBox组件,扩展Flex的原生GroupBox类,并覆盖它的绘图方法来实现自己的边框绘制逻辑。 总结来说,创建一个带矩形边框的Flex GroupBox涉及到CSS...

    Flex模拟Mac特效

    1. Flex组件库:Flex提供了一系列预定义的UI组件,如Button、Label、PopupWindow等,这些组件可以帮助开发者快速构建用户界面。在实现Mac弹出框特效时,可能需要用到PopupWindow或自定义组件来创建弹出效果。 2. ...

    通过自定义组件实现可拖动改变位置和大小的Label

    本主题聚焦于如何通过自定义组件实现一个可以被拖动改变位置和大小的Label,这在各种桌面和Web应用中都有广泛的应用,特别是在富客户端(Rich Client)或Flex/AIR项目中。 首先,我们需要理解基本的组件构建过程。...

    在FLEX中使用CSS样式方法

    - CSS样式表用于定义Flex应用中UI组件的外观,包括颜色、字体、边框、间距等属性。 - 使用`&lt;style&gt;`标签或外部样式表文件(.css)导入到Flex项目中。 2. **命名空间和类选择器** - Flex CSS需要指定命名空间,...

    Flex4.5从浅入深

    ### Flex4.5从浅入深:第一章可视化组件运用与第一节button详解 #### 一、Flex简介及文档结构概述 Flex是一种开源框架,用于构建跨平台的桌面和移动设备应用程序。它结合了强大的编程语言ActionScript 3以及一组...

    Flex_Css完全手册

    - Flex组件库:Flex包含了一套丰富的预定义组件,如Button、Label、List等,这些组件可以直接在MXML中使用,简化了UI开发。 2. **CSS在Flex中的应用** - 样式表:在Flex中,可以使用CSS定义组件的外观和布局,...

    flex示例

    1. **Flex框架**:Flex提供了丰富的UI组件库,如Button、Canvas、Label等,可以快速构建用户界面。同时,它支持数据绑定和事件处理,使得开发者能轻松地将业务逻辑与界面交互结合。 2. **MXML**:MXML是一种标记...

    Flex开发实例.pdf

    根据提供的文档信息,我们可以深入探讨Flex开发中的关键概念和技术细节,包括MXML与ActionScript的基础用法、常用UI组件的应用以及GIS开发等高级主题。 ### Flex简介 Flex是一种开源框架,用于构建高质量的Web应用...

    flash/flex 的aqua皮肤

    MX组件是早期Flex版本中的组件集合,而Spark组件是Flex 4及更高版本引入的,具有更好的性能和可定制性。对于Aqua皮肤,我们通常会关注MX组件,因为它们更容易实现这种特定的视觉风格。 实现Aqua皮肤的方法通常包括...

    用ActionScript开发高级可视化组件

    高级组件不仅限于对现有组件进行简单的扩展,还涉及到复杂的定制与集成。这类组件的创建通常包括以下几个方面: 1. **更改已有组件的可视化外观或特性**:通过对现有组件的外观和行为进行深度定制,例如修改按钮的...

    flex 皮肤切换

    皮肤类包含组件的各个部分,如边框、背景、文字样式等。开发者可以根据需要创建自定义皮肤,覆盖默认样式。 在“themeSwap.mxml”文件中,通常会有一个主应用程序类,这个类会包含一个或多个按钮,用于触发皮肤切换...

    01 FLEX从浅入深简单教程.docx

    - Flex项目通常包括可视组件(如按钮、文本框等)和非可视组件(如数据源、数据绑定等)。 #### 三、Flex基础语法及Hello World - **基础语法:** Flex的基础语法主要涉及MXML和ActionScript的使用。MXML用于定义...

    表格单元格自定义ToolTip组件

    3. 设计样式:通过CSS或MXML定制外观,包括颜色、字体、大小、边框、背景等。 4. 控制行为:调整显示延迟、消失时间、跟随鼠标移动等行为。 5. 应用到DataGrid:在DataGrid的列定义或单元格渲染器中,设置自定义...

    flex4做的itemrenderer呈现器

    为了模仿雅虎聊天界面,可能需要添加背景色、边框,以及适当的内边距。例如: ```xml ``` 4. **性别显示**: 对于`sex`字段,可以使用Image组件展示不同的图标表示性别。可以创建两个Image元素...

    FLEX4的皮肤制作教程

    - `&lt;s:Ellipse&gt;`元素用于定义按钮的背景形状,并设置了填充颜色和边框颜色。 - `&lt;s:RichText&gt;`用于定义按钮上的文本,包括字体大小、颜色等属性。 ##### 2.2 应用皮肤 皮肤可以通过以下几种方式应用到Flex控件上:...

    FlexLogin 特效

    1. **Flex组件库**:Flex提供了一系列预定义的UI组件,如Button、TextInput、Label等,开发者可以利用这些组件快速构建界面。FlexLogin特效可能使用了TextInput组件来实现用户名和密码输入,Button组件用于提交登录...

    flexviewer登陆界面

    5. `&lt;fx:Declarations&gt;`:这部分定义了Flex Viewer的核心组件,如`ViewerContainer`,它包含了配置管理器、数据管理器、地图管理器、用户界面管理器和小部件管理器等。这些都是Flex Viewer的核心服务,用于处理应用...

    flex自定义按钮皮肤示例附图

    使用s:Label组件来展示按钮文本,设置字体、颜色、对齐方式、垂直和水平居中等属性。 NewStyleButtonSkin.mxml是另一个自定义皮肤的例子,与RightButtonSkin类似,但可能包含额外的视觉元素,如图标或者其他图形...

    Card-Component:HTMLCSS卡组件

    这包括设置边框、背景色、内边距、外边距、阴影、文字样式等。我们还可以通过Flexbox或Grid布局来实现卡片的排列。例如,使用Flexbox实现一列卡片布局: ```css .card-container { display: flex; flex-wrap: ...

Global site tag (gtag.js) - Google Analytics