Flex 自定义组件外观

【U-Net 数据集制作】如何制作自己的图像分割数据集?(标注与格式转换),图像分割数据集制作与转换神器 在前面的课程中,我们像搭积木一样手写了 U-Net 的网络架构。很多同学迫不及待地想把自己的图片喂进网络开始“炼丹”。但是,深度学习界有一句名言:“数据决定了模型的上限,而网络结构只是在逼近这个上限。用标注工具标出来的是 JSON 文件,怎么变成 U-Net 需要的黑白掩码(Mask)图?为什么我的 Mask 肉眼看是黑白的,一放进 PyTorch 训练就报?如何快速按 8:2 的比例把几千张图片和标签划分成训练集和验证集? 阅读详情

简介: Flex 是现今最受欢迎的 RIA 开发技术之一,它凭借其优秀的用户体验获得许多用户的青睐,因此也吸引了众多的程序员投入 Flex 学习的洪流之中。Flex 之所以如此受欢迎,一大部分原因是因为 Flex 的界面效果非常出众。Flex 提供了自定义组件外观的众多方法,使得 Flex 程序界面丰富多彩。本文通过简单实用的程序例子(包括冒泡信息提示框、图像圆角、动态按钮、网格背景),使用位图、矢量图、SWF 文件自定义皮肤,使用 Mask 制作遮掩效果,讲解了其中几种自定义组件外观方法的优缺点。通过本文,读者可以比较系统的学习组件自定义外观的方法,在设计 Flex 的 UI 时,相信本文可以为读者提供帮助 .

 

引言

优秀的 Flex 应用程序总是绚丽多彩,有些甚至令人瞠目结舌,不得不称赞 Flex 的 UI 效果。Flex 组件的默认效果一般,那么那些华丽的界面又是如何开发的呢,这就得靠程序员自定义组件外观实现了,Flex 组件提供了许多让程序员自定义外观的方式方法,本文通过具体的应用实例,讲解其中几种笔者使用过的自定义组件的方法,相信初识 Flex 的读者可以从中获益。


实例实现

目前 Flex 已经出了 Flex 4 版本,本文使用的是 Flex 3 版本,实现部分按照下面的列表依次讲述。

实际上各个部分之间没有明显的关系,除了开发环境配置,其他每个部分分别讲述了一种自定义组件外观的方法,因此,读者可以根据需要查看具体部分。附件是标准的 Flex Builder 3 的项目,读者可以下载后导入,除了开发环境配置外,上述列表的其他各个部分都对应着一个 mxml 文件,可以直接运行查看效果。具体对应关系可以查看附件中的清单。


开发环境配置

所有的例子都是使用 Flex Builder 开发,需要 JDK5.0 以上的支持,例子中不需要服务器的支持,需要安装 Flash Player 9.0。


动态按钮

动态按钮的的概念就是在鼠标悬停、鼠标点击、鼠标离开控件时,组件呈现不同的外观,这三种不同的外观可以通过背景位图图片,背景 SWF 文件实现。

位图实现

位图实现是将二进制图像文件作为控件背景,这里使用 Flex 的 Button 控件作为例子,通过定义 Button 的 upSkin、overSkin 以及 downSkin 样式分别设置鼠标离开 Button 时、鼠标悬停 Button 上方时以及鼠标点击 Button 时的皮肤,皮肤制作则使用 Embed 标签加载图片,使之成为 Class 对象,通过 Button 的 setStyle 方法将 Class 对象作为皮肤设置进去,清单 1 展示了其中设置 upSkin 的方法 .downSkin 和 overSkin 的设置方法相同。


清单 1. Button 控件设置 upSkin
				 
 var btn:Button= … ; 
 [Embed(source="images/up.jpg", 
                    scaleGridTop="26", 
                    scaleGridBottom="64", 
                    scaleGridLeft="30", 
                    scaleGridRight="106")] 
 private var upSkin:Class; 
 btn.setStyle("upSkin",upSkin); 

清单 1 中,Embed 标签内的 scaleGridTop、scaleGridBottom、scaleGridLeft、scaleGridRight 属性涉及到一种 Web 技术,名为九宫格的缩放技术,为了解释该技术,请先看图 1.


图 1. 九宫格原理图
图 1. 九宫格原理图


注:原图是,5 * 5 方格图,每个方格 4 个像素,上图是被放大后的效果

图 1 在四条红线的位置把图片块成了 9 块,四个角,四条边和中间一块,在缩放的时候,四个角始终不变,两条横向边只缩放宽度,高度不变,两条纵向的边只缩放高度,宽度不变,中间一块宽和高同时缩放,这就是九宫格缩放的原理。这种技术一般是在使用图片做控件的皮肤时使用,很多控件的皮肤样式,在四个角的为位置是圆的或不规则的,所以使用这种缩放技术可以保证控件与图片的大小不一致的时候,图片看起来并不变形。

了解了九宫格技术再看 scaleGridTop、scaleGridBottom、scaleGridLeft、scaleGridRight 四个属性,它们分别代表图 1 中四条红色切割线的位置,scaleGridTop 代表横向顶部的切割线距离图像顶部的像素距离;scaleGridBottom 代表横向底部的切割线距离图像顶部的像素距离;scaleGridLeft 代表纵向左部的切割线距离图像左部的像素距离;scaleGridRight 代表纵向右部的切割线距离图像左部的像素距离。

通过上述技术和方法的使用,具体实例效果展示如图 2. 从左至右分别是 upSkin、downSkin、overSkin 的效果。


图 2. 位图实现效果展示图
图 2. 位图实现效果展示图

SWF 文件实现

SWF 文件实现就是用 SWF 文件中具体的某一帧(MoiveClip)作为控件皮肤,修改 位图实现部分的 Embed 标签,构建的新的示例,如清单 2.


清单 2. 使用 SWF 具体某帧作为皮肤
				 
 <mx:Style> 
      Button{ 
          up-skin:Embed(source="images/bg.swf",symbol="btnUP"); 
           over-skin:Embed(source="images/bg.swf",symbol="btnOVER"); 
           down-skin:Embed(source="images/bg.swf",symbol="btnDOWN"); 
        } 
 </mx:Style> 
 <mx:Button id="btn" label="Hello World" width="100" height="60"/> 

上面代码 Embed 中的 source 指向了一个 SWF 文件,没有与九宫格相关的布局属性,出现了新的属性:symbol,它是 SWF 文件中某一帧的标识符,意思是使用指定的帧作为皮肤。清单 2 的效果如图 3. 从左至右分别是 upSkin、downSkin、overSkin 的效果。


图 3. SWF 实现效果展示图
图 3. SWF 实现效果展示图

这种特殊的 SWF 文件需要用到 Flash 开发工具,具体的开发方法读者可以查阅相关的 Flash 资料。


冒泡信息提示框

冒泡信息提示框是自定义的 ToolTip,传统的 Flex ToolTip 效果如图 4 所示。


图 4. 传统 ToolTip
图 4. 传统 ToolTip

可以看到效果还是比较简陋的,为了增强用户体验,文章实现了新的 ToolTip 让其拥有冒泡效果,效果展示如图 5.


图 5. 冒泡 ToolTip
图 5. 冒泡 ToolTip

冒泡 ToolTip 的思想是新建名为 BubbleToolTip 的类,继承于 Canvas,实现 IToolTip 接口,IToolTip 是自定义 ToolTip 必须实现的接口。重写 BubbleToolTip 的 updateDisplayList 方法,目的是重新绘画 BubbleToolTip 的皮肤,皮肤的绘制依赖 BubbleToolTip 内部的 Graphics 对象,通过 this.graphics 语句可以获得该 Graphics 对象的引用,调用 Graphics 对象的 drawRoundRect 方法绘制冒泡的圆形,提示的具体内容则使用子对象 Canvas 存放。清单 3 是 BubbleToolTip 的 updateDisplayList 方法代码。


清单 3. BubbleToolTip 的 updateDisplayList 方法
				 
 override protected function updateDisplayList( 
           unscaledWidth:Number, unscaledHeight:Number ) : void 
 {   
   super.updateDisplayList( unscaledWidth, unscaledHeight ); 
 
 
 this.graphics.clear(); 
 
    this.graphics.beginFill( getStyle('backgroundColor'), 1 ); 
    this.graphics.lineStyle(2, getStyle('borderColor'), 1); 
    this.graphics.drawRoundRect(0, 35, 6, 6, 24, 24); 
    this.graphics.endFill(); 
 
    this.graphics.beginFill( getStyle('backgroundColor'), 1 ); 
    this.graphics.lineStyle(2, getStyle('borderColor'), 1); 
    this.graphics.drawRoundRect(10, 25, 15, 15, 24, 24); 
    this.graphics.endFill(); 
 } 

清单 3 的作用是绘画图 5 中黑色的两个圆圈,显示 Hello 信息的则是使用 Canvas 组件,该 Canvas 是在主 MXML 文件中定义,代码如清单 4 所示。


清单 4. 使用 BubbleToolTip 的 MXML 文件
				 
 <?xml version="1.0" encoding="utf-8"?> 
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
 xmlns:component="component.*" backgroundGradientAlphas="[1.0, 1.0]" 
 backgroundGradientColors="[#FFFFFF, #FFFFFF]"> 
 <mx:Script><![CDATA[ 
        import mx.events.ToolTipEvent; 
       import component.BubbleToolTip; 
        
        private function createCustomTip(title:String,event:ToolTipEvent):void { 
           var bt:BubbleToolTip = new BubbleToolTip(); 
           bt.text=title; 
           content.text = title; 
           bt.addChild(ppp); 
           ppp.visible=true; 
           event.toolTip = bt; 
        } 
        
        private function positionTip(event:ToolTipEvent):void{ 
            event.toolTip.x=event.currentTarget.x + event.currentTarget.width + 10; 
            event.toolTip.y=event.currentTarget.y;  
        } 
    ]]></mx:Script> 

 <mx:Button id="b1" 
        label="Hello world" x="60" y="60"
        toolTip=" " 
        toolTipCreate="createCustomTip('Hello World',event)"
        toolTipShow="positionTip(event)"
    /> 
  <mx:Canvas id="ppp" visible="false" width="50" height="40" cornerRadius="15" 
    borderColor="#000000" x="35" y="0" borderStyle="solid" borderThickness="2"> 
    <mx:Text id= "content" text="xixi" x="4.5" y="5" width="40" height="23.5"> 
        
        </mx:Text> 
        </mx:Canvas> 
 </mx:Application> 

清单 4 中定义了存放信息的 Canvas ,id 为 ppp,首先设置 ppp 的 visible 为 false,不可见,在显示 ToolTip 的时候将 ppp 加到 BubbleToolTip 中,并且设置 ppp 为可见。设置 event.tooltip 为指定的 BubbleToolTip 对象。在 createCutomTip 方法中设置新的 ToolTip,在 positionTip 方法中定义 tooltip 的显示位置。

为了形象的表现出重写 updateDisplayList 方法前后的 BubbleToolTip 的对比,图 5显示的是重写后弹出的信息提示框,图 6 是不重写 updateDisplayList 的信息提示框,从两张图片可以看出重写后发生的变化。


图 6. 不重写 updateDisplayList 方法的 BubbleToolTip

可以看到子对象的 Canvas 前后不变,因为并没有重写它的 updateDisplayList,而重写 BubbleToolTip 的 updateDisplayList 方法后边框变成了两个冒泡。注意 BubbleToolTip 对象实际上也是一个 Canvas。


网格背景

网格背景在一些 Flex 流程编辑器中可以看到,画布的网格背景不仅可以增强用户体验,对于流程编辑中的流程节点的对齐也有很大的帮助。

网格背景的容器使用画布 Canvas 对象,使用 CSS 重新定义容器的皮肤。定义新皮肤的 CSS 代码如清单 5.


清单 5. CSS 定义新皮肤 Canvas
				 
 { 
 borderSkin: ClassReference("skins.GridSkin"); 
 }

skins.GridSkin 是一个 Flex 类,继承于 ProgrammaticSkin,ProgrammaticSkin 类代表编程式的皮肤定义,重写它的 updateDisplayList 方法可以设置新的皮肤,这和直接重写 Canvas 的 updateDisplayList 方法效果上是一致的,本文重在讲解新的定义方法,因此使用 CSS 定义。清单 6 显示网格定义的代码。


清单 6. ProgrammaticSkin 的 updateDisplayList 实现代码
				 
override protected function updateDisplayList(unscaledWidth:Number, 
unscaledHeight:Number):void {
 var g:Graphics = this.graphics; 
 g.clear(); 
 g.beginFill(0x000000, 0); 
 g.drawRect(0, 0, unscaledWidth, unscaledHeight); 
 g.endFill(); 
 g.lineStyle(1, 0x000000, 0.1); 
 var squareSize:Number = 15; 
 var numRows:Number = unscaledHeight / squareSize; 
 var numCols:Number = unscaledWidth / squareSize; 
 for(var row:Number = 0; row< numRows; row++) { 
 g.moveTo(0, row * squareSize); 
 g.lineTo(unscaledWidth, row * squareSize); 
 } 
 for(var col:Number = 0; col< numCols; col++) { 
 g.moveTo(col * squareSize, 0); 
 g.lineTo(col * squareSize, unscaledHeight); 
 } 
 } 

清单 6 中的 unscaledWidth 和 unscaledHeight 代表了 Canvas 画布实际的宽和高,画布内的 Graphics 对象默认的绘画原点是画布左上角(0,0)点。代码 drawRect(0, 0, unscaledWidth, unscaledHeight) 用于绘画整个画布的边框,lineStyle(1, 0x000000, 0.1) 设置将要画的线的样式,黑色、透明度 0.1、粗细 1,squareSize 定义网格的大小(网格为正方形)。通过 unscaledHeight / squareSize 和 unscaledWidth / squareSize 获得画布允许的行数和列数,moveTo 移动绘画原点,lineTo 表示从原点到目标点画线。For 循环代表每画一行(列),原点向下(右)移动 squareSize 的距离,再从原点平行画直线到画布右边缘(底边缘)。那么网格效果就出来了 . 效果如图 7 所示 .


图 7. 网格背景效果
图 7. 网格背景效果

图像圆角

图像圆角是 Web2.0 重要的标志,如果你用过 CSS 进行圆角的开发,那么不管在开发过程中或者处理浏览器兼容问题时一定会大喊痛苦。然而在 Flex 中,图像圆角变的非常简单,使用 Mask 技术就可以轻松得实现。这种技术的直观感觉是将某一控件 A 覆盖在另一控件 B 之上,而 B 显示的部分则是被 A 遮盖的部分。如果 A 具有透明度,那么 B 也会有透明度。例子代码如清单 7. 所示。


清单 7. 图像圆角组件
			 <?xml version="1.0" encoding="utf-8"?>
 <mx:Canvas 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:filters="flash.filters.*"
    width="100%" height="100%" > 

    <mx:Image source="assets/ygy.jpg" x="10" y="10" mask="{maskCanvas}"> 
        <mx:filters> 
            <filters:DropShadowFilter /> 
        </mx:filters> 
    </mx:Image> 
    
    <mx:Canvas x="81" y="62" width="344" height="274" backgroundColor="#ff0000" 
    id="maskCanvas"  cornerRadius="15" borderStyle="solid"/> 
    
 </mx:Canvas> 

清单 7 中图像圆角组件实际上是一个 Canvas,该组件内显示的是一个 Image(A),该 Image 指定 mask 为 maskCanvas,也就是一个 id 为 maskCanvas 的 Canvas(B),代码的意思是使用 B 遮盖 A,那么 B 的样式决定了 A 显示的样式,B 的样式中重要的是 backgroundColor 和 cornerRadius,backgroundColor 设置成红色,并不透明,cornerRadius 设置 B 的圆角(注意,Image 没有这个属性),那么使用深色的 B 遮盖 A,A 将显示被 B 遮盖的部分,也就是显示了图像的圆角,效果如图 8。


图 8. 图像圆角效果

该效果使用的原图像如图 9 所示。这是一张方形的图像。


图 9. 原图像

从清单 7 的 Design 视图可以看出 A 和 B 的遮盖结果,效果如图 10。


图 10. Design 视图

原图像主要内容被红色背景的 Canvas 遮盖,四个角没被遮盖因此运行时则不被显示。运行后效果就会如图 8 所示了。


总结

本文的目的主要在于让读者了解 Flex 自定义组件外观的方法和技巧,如果读者有兴趣的话,可以做进一步的研究,掌握更多设置外观的方法,让 Flex 在你手中更加丰富多彩。由于笔者知识水平有限,如果有错误的地方,欢迎联系我指正。

运行时安全引擎RSE 该博客重点介绍了运行时安全引擎(Runtime Security Engine,简称 RSE)与应用处理器(Application Processor,简称 AP)之间的关系。 根据 ARM 的参考设计,RSE 是位于同一芯片(die)上的一个独立核心,与 AP 和系统控制处理器(System Control Processor,简称 SCP)并列存在。RSE 为整个系统提供基本的安全保障和运行时服务,例如:可信启动(trusted boot)、度量启动(measured boot)、平台认证(platf 阅读详情

相关推荐

LPDDR5/5X BG mode,8B mode和16B mode

LPDDR5/5X 器件,协议上支持多个bank架构可静态配置;配置在MR3:模式说明协议要求速率要求BLBG模式每CH 4BG, 4BALPDDR5/5X>3200MbpsBL16 & 328B模式每CH 8BALPDDR5任何速率BL3216B模式每CH 16BALPDDR5/5X<=3200MbpsBL16 & 32。

hemlok的博客 8858

css的flex布局实现响应式九宫格

flex布局:flex布局为盒子模型提供了很大的便利性,具有lfex布局的元素成为容器,它的所有子元素成为项目。flex容器默认有两条相交轴,一条水平方向的主轴(main axis),一条垂直方向的交叉轴(cross axis)。水平轴的开始位置叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。默认项目沿主轴排列,在...

wakaka_cy的博客 2万+

AI 自动生成商业计划书:AIGC 如何助力创业者?

在创业的早期阶段,商业计划书(Business Plan)是至关重要的。它不仅用于吸引投资者、明确发展路径,还能帮助团队对业务模式、市场定位和财务预测有清晰认知。然而,撰写一份高质量的商业计划书往往需要投入大量时间和精力。如今,AIGC(AI Generated Content,人工智能生成内容)技术正在改变这一现状。借助 AIGC,创业者可以更快速、高效地创建商业计划书,并通过 AI 进行优化和数据分析。

2401_82808034的博客 3780

Adobe Flex迷你教程 —Flex圆角容器

在Flex3时代可以设置borderSides属性达到圆角效果,如:borderSides="top left right" ,在Flex4中borderSides属性貌似已经没有了(其实flex3中很多的属性,在flex4中都没有了,已经换了其他实现方式) 那么,在flex4中要如何做才能达到上面说的效果呢? 当然是SKIN,在flex4中更推荐用SKIN来控制组件的样式。...

weixin_30619101的博客 173

Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决

/* 开启串口1中断 */ LL_USART_EnableIT_RXNE(LPUART1); /* 开启串口2中断 */ LL_USART_EnableIT_RXNE(USART2);

シ❤゛甜虾的个人博客 7686

保姆级教程:2026版Windows电脑换新,微信QQ聊天记录无损搬家(附路径修改避坑指南)

本文提供2026版Windows电脑换新时微信QQ聊天记录无损迁移的保姆级教程,涵盖最新版微信/QQ的存储路径修改和避坑指南。通过详细步骤和实战技巧,确保数据迁移过程中不丢失任何珍贵对话记录和文件,特别适合需要保留完整聊天记录的用户。

weixin_42629815的博客 2478

flex伸缩布局之九宫格

今天做微信小程序的时候,在布局的时候遇到了很大的麻烦,flex布局基本忘了。看了一下阮一峰前辈的博客,然后加上自己的一些理解。 这是九宫格效果图  这是html结构  这是css代码(重点,敲黑板)  首先对基本属性做个简单的介绍,display:flex将盒子转为伸缩盒子,flex-wrap控制当前盒子的内部元素的是否换行(no-wrap不换行, wrap换行, wrap-r...

saber123321的博客 1万+

数据挖掘实战-基于随机森林算法的交通事故预测模型

本实验数据集来源于Kaggle,原始数据集共有209306条,该数据集包含不同地区和时间段的交通事故详细信息。它包括各种指标,例如事故日期、天气状况、照明条件、碰撞类型、受伤人数和车辆参与情况。数据涵盖多个地点和事故类型,可全面了解交通事故及其原因。具体包括:crash_date:事故发生的日期。Traffic_control_device:所涉及的交通控制设备的类型(例如交通灯、标志)。weather_condition:事故发生时的天气状况。

m0_64336780的博客 1万+

九宫格——用html+css制作一个网页

不废话,直接上代码 HTML代码: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;task1&lt;/title&gt; &lt;link rel="stylesheet&

kivet 的博客 2万+

企业数据治理体系中的AI与业务融合:架构师的3个成功案例

企业数据治理的痛点从来不是“有没有做”,而是“做了之后有没有用”——很多企业花了数百万建数据仓库、做元数据管理,最后却陷入“数据躺在库里睡大觉”“AI模型因数据质量差而失效”的困境。本文通过零售、金融、制造3个真实案例,拆解架构师如何用AI连接数据治理与业务场景:从“客户画像不准”到“精准推荐提升30%转化率”,从“欺诈检测漏报”到“实时拦截减少50%损失”,从“库存积压”到“供应链周转率提升20%”。如何让数据治理从「合规驱动」转向「价值驱动」?

AI 原生应用开发的博客 992

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 862

flex 九宫格布局实现

flex 九宫格实现

ZTao-z的博客 1681

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

王老师青少年编程 2114

Flex:备忘->Flex 自定义组件外观/九宫格/圆角效果

 Flex 自定义组件外观 魏 强, 硕士研究生, 东北大学软件学院 简介: Flex 是现今最受欢迎的 RIA 开发技术之一,它凭借其优秀的用户体验获得许多用户的青睐,因此也吸引了众多的程序员投入 Flex 学习的洪流之中。Flex 之所以如此受欢迎,一大部分原因是因为 Flex 的界面效果非常出众。Flex 提供了自定义组件外观的众多方法,使得 Fl

Winters_huang'Blog 2016

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Flex 4 TabNavigator组件或TabBar加ViewStack组合组件的选择

Flex 4中有两种方法来实现Tabbed Navigation功能,TabNavigator组件或TabBar加ViewStack的组合组件都能完成该功能,但这两者有各自的优缺点。   如果不注重外观又想实现得简单,那么就选择TabNavigator组件吧;如果注重外观,那么就一定要选择TabBar加ViewStack的组合组件了,我个人必定选择第二种。   下面让我们来看一看我为什么这么说

sunchunmei555的专栏 4053

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Flex更换皮肤与LinkButton自定义按钮皮肤

这个问题一直有很多人问,我们能不能够去更换Flex中默认组件的外观,答案是可以的。我们可以使用CSS和FLASH软件来制作并更换程序中的组 件外观。这里我们就制作一篇简单易懂的教程来向大家讲解如何制作并替换Flex原有组件的外观样式。        网上也有类似的教程,我这篇不一定写的比其他的教程好,但是我们的教程绝对属于原创,并结合了作者的心得体会,力求独一无二。如果大家要转载本篇文章,...

luoke920 316

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

flex 4 布局样式

Flex 4 样式与布局 第一篇 Flex 4 与自定义布局(Layout) Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的就是定义一个自定义布局。 Flex 4/Spark架构中的容器并不控制它们自己的布局。相反,每种容器具有一个布局属性,用于确定如何在屏幕上设置子元素的布局。可以使用一个单独的Group容器,并...

weixin_30394251的博客 161

将应用程序从Flex 3迁移至Flex 4

http://www.infoq.com/cn/vendorcontent/show.action?vcr=1168   在本指南中,我将介绍如何将一个实际应用程序从 Flex 3 迁移至 Flex 4。文中提供的示例涵盖了 Flex 应用程序开发的所有重要领域,包括 CSS、Spark 组件、自定义外观、嵌入字体等。  在您自己动手之转换之前,这看起来好像是一项艰巨的任务。如果您阅读了

victoryckl的专栏 1114

Flex拾遗三:TabNavigator组件或TabBar加ViewStack组合组件的选择

导航栏的选择问题

gshl0409的博客 399

Flex 4中Spark组件利用Skin Class外观设计(1)

Flex 4 默认为Spark主题,Spark组件的外观设计与之前相比也变得更简单高效。 Spark组件都不包含可视外观属性,所有这类信息都包含在外观文件SkinClass中。 SkinClass借助 FXG和状态语法完成组件的交互式设计,其使用MXML编写新的外观文件。 在组件中则通过skinClass属性来应用相关外观文件,如:。   以下是本人写的一个简单的ButtonSkinCl

488

flex修改titleWindow背景

开发工具:myesclipse + flex builder 步骤: 1.新建flex项目 flexTitleWindow 切换到Flex设计界面 将titlewindow拖入舞台中,并修改标题 接下来修改titlewindow的外观, 首先修改标题栏 1.查看源代码 2.    新建一个skin文件夹用于存放皮肤 新建皮肤外观

siejls的专栏 1071

flex 平铺布局_flex 4 布局样式

Flex 4 样式与布局第一篇 Flex 4 与自定义布局(Layout)Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的就是定义一个自定义布局。Flex 4/Spark架构中的容器并不控制它们自己的布局。相反,每种容器具有一个布局属性,用于确定如何在屏幕上设置子元素的布局。可以使用一个单独的Group容器,并赋予其一个垂直布局、水平布局或平铺布局...

weixin_39929635的博客 252

Flex如何自定义组件

1.在类声明前插入[Style]元数据标签,语法如下: [Style(name="style_name"[,property="value",...])] 2.定义一个静态初始器,为样式属性设置默认值。 3.覆写styleChanged()方法,检测样式属性是否改变。 4.覆写updateDisplayList() 方法,在显示组件时加入样式。 一般情况下,我们会使用...

ipod20080808的博客 126

Flex 4 中Spark组件利用SkinClass外观设计

原文:http://ctwen.iteye.com/blog/654848   1. Flex 4 默认为Spark主题,Spark组件的外观设计与之前相比也变得更简单高效。 Spark组件都不包含可视外观属性,所有这类信息都包含在外观文件SkinClass中。 SkinClass借助 FXG和状态语法完成组件的交互式设计,其使用MXML编写新的外观文件。 ...

小白 232

flex组件重写

1.在类声明前插入[Style]元数据标签,语法如下: [Style(name="style_name"[,property="value",...])] 2.定义一个静态初始器,为样式属性设置默认值。 3.覆写styleChanged()方法,检测样式属性是否改变。 4.覆写updateDisplayList() 方法,在显示组件时加入样式。 一般情况下,我们会使用...

iteye_4280的博客 146
上一篇: 从零开始编写一个flex组件。FLEX自定义控件
下一篇: FLEX SharedObject介绍及应用
supperflex
博客等级 码龄16年 7粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值