Flex4组件自定义外观
FLEX4_Flex4教程
Flex 应用的构建形式 尽管用 Flex 开发 RIA 有多种形式,但现在主流的架构是:Flex 作为 Client(客户端),Java、PHP、 Asp、Ruby 等技术作为 Server(服务器端)。
本教程之后的内容主要介绍 Flex 与 Java 技术的整合。
Flex 访问服务器端数据的 3 种方式 既然 Flex 可以和 Java 等 Sever 端技术整合,那么它们之间怎样实现通信的呢?Flex 通过 HTTPService,WebService 和 RemoteObject 这 3 个组件实现与 Server 端的通信。
外观与样式设计 使用 CSS 和图形属性编辑器自定义应用程序外观。快速设置最常用的属性,并在“Design”(设计) 视图中预览结果。使用新的 Theme Browser(主题浏览器)浏览可用主题,并将它们应用于您的项目。
与 Adobe Creative Suite 设计工具集成 导入使用 Adobe Flash Professional、Illustrator®、Photoshop® 或 Fireworks® 软件创建的设计 资源,或导入使用 Flash Catalyst 创建的整个应用程序用户界面。Flash Professional 与 Flash Builder 之间的新工作流程简化了自定义 Flex 组件的导入和更新。
HTTPService 组件
HTTPService 组件允许你与 HTTP 服务交互,可以是接收 HTTP 请求和发送 HTTP 响应的任何 HTTP URI。 你可以通过 HTTPService 组件调用任何类型的 Server 端技术,包括 PHP pages, ColdFusion Pages, JavaServer Pages, Java servlets, Ruby on Rails 和 ASP pages。 HTTPService 组件允许你发送 HTTP GET、POST、HEAD、OPTIONS、PUT、TRACE 和 DELETE 请求,并典 型的以 XML 形式返回。
flex组件
mx|Application{====常用样式modalTransparency:通过在组件下创建大型半透明叠加层来模拟PopUpManager启动的组件形式。
默认值为0.5.modalTransparencyBlur:模式窗口打开时,应用于应用程序的模糊效果。
模糊效果可以柔化图像的细节。
默认值为3.modalTransparencyColor:模式叠加层的颜色。
默认值为#DDDDDD.modalTransparencyDuration:模式窗口打开或关闭时播放模式透明度效果的持续时间(以毫秒为单位)。
默认值为100.paddingBottom:Application: 容器的下边框与其内容区域之间的像素数目。
默认值为24.paddingTop:Application :容器的上边框与其内容区域之间的像素数目。
默认值为24.backgroundAttachment:如果指定了背景图像,则此样式指定它是相对于视域保持固定状态("fixed") 还是随着内容一起滚动("scroll")。
baseline:从内容区域的上边缘到控件的基线位置的垂直距离(以像素为单位)。
如果设置此样式,则组件的基线锚定在其内容区域的上边缘;调整组件容器大小后,这两个边缘将保持它们的间距。
borderSkin:组件的边框外观类。
在未显式设置其自身默认值的所有组件中,Halo 主题的默认值为mx.borderStyle:边框样式。
可能值为"none"、"solid"、"inset" 和"outset"。
默认值取决于组件类;如果没有覆盖该类的默认值,则默认值为"inset"。
大多数容器的默认值为"none"。
"inset" 和"outset" 值只在halo 主题中有效。
Flex移动皮肤
Flex移动皮肤Flex 4.5提供的移动增强的皮肤特性,支持触摸交互、性能优良,并且考虑到了内存占用问题。
尽管目前市场上有不少性能优异的设备,但典型的Spark 皮肤(包括Flex 4引入的默认皮肤)却没有能够在移动设备上得到很好的应用。
Adobe为移动优化过的皮肤在设计时就考虑到平衡两个对立的目标:性能优异却又容易创建。
虽然MXML皮肤在某些情况下是有用的,但Adobe还是建议遵循以下简单的方针,确保Flex 4.5移动应用程序能够同时满足开发者和最终用户的性能要求。
这是介绍Flex 4.5移动皮肤特性系列文章中的第一篇。
本文将涵盖创建移动增强皮肤的基本知识,包括:∙Spark主题和Mobile主题的区别∙MobileSkin基类中包含的性能优化∙用FXG替代MXML图形∙基于Mobile主题的ButtonSkin类创建自定义的Button皮肤该系列文章中的余下几篇将会介绍更多高级主题,包括:∙基于MobileSkin基类构建新的皮肤∙创建空间感知的皮肤,可以适应所有屏幕尺寸∙使用CSS媒体查询为每个平台创建自定义的主题比较Spark和Mobile 主题Mobile主题基本是Flex 4引入的Spark主题功能集的一个子集。
Mobile主题专门针对性能和内存占用问题进行的优化。
MobileSkin 基类Spark 皮肤通常需要继承 Skin (它扩展了 Group) 或者 SparkSkin (它扩展了 Skin)。
Mobile主题里的皮肤使用一个新的基类MobileSkin,它扩展了UIComponent。
状态MobileSkin对状态的支持是它一项针对移动开发优化过的主要特性。
一般情况下,使用状态特性(在MXML或者ActionScript)都会带来额外的内存和性能消耗。
而MobileSkin不再用State类及子类,而是手工的在代码里处理状态改变,例如SetProperty 和 AddChild。
flex4 读书笔记
chapter 11、flex包含一个基于组件的开发模型,你只需要按需求继承现有的组件并扩展相关的方法就可开发你的应用。
2、可视化组件包括以下主要特性:尺寸、事件、样式、效果、皮肤。
3、flex定义了两套组件。
一套为Spark,放在spark.*包下。
一套为MX,放在mx.*包下。
Spark是在flex4中新添加的,mx为旧版本中定义的。
两套组件的主要不同点在于样式及皮肤的使用。
另外对于容器组件,布局的方式也改变了。
4、有些组件在两套UI中都存中,例如按钮,在这种情况下adobe建议你使用Spark中的组件。
有些组件是某套UI特有的。
例如Spark中的3d效果。
mx组件中的数据可视化组件,例如DataGrid、AdvancedDataGrid。
所以你的应用会包含两套UI中的组件。
5、可视化组件的继承层次结构:Object-EventDispatcher-DisplayObject-InteractiveObject-DisplayObjectContainer-Sprite-FlexSprite-UIComponent。
flex中所有的可视化对像都继承自UIComponent。
6、UIComponent中需要注意以下属性。
doubleClickEnabled:flex默认是不支持双击的,如果要开启双击,请把该属性设为true;height:在mxml中你可以设置值为数字,这时默认单位为pix。
你也可以设置为70%这种比例。
在as中,如果要设置百分比,你需要用percentHeight这个属性。
x,y:这组属性只在layout为绝对布局时才有效。
7、每一个flex组件都有对应的mxml接口和as接口。
两者之间是相等的。
8、每个一可视化组件都包含以下三个生命周期事件:preInitialize:组件刚被创建,还没有添加子节点,且不可见。
initialize:把子节点初始化好,并尺寸也设置好,但仍然处于不可见状态。
MSFlexGrid控件的常用属性
获得或设置FlexGrid的固定(不可滚动)列的总数
FixedRows
获得或设置FlexGrid的固定(不可滚动)行的总数
FocusRect
决定FlexGrid控件是否应该绘制一中心矩形环绕当前单元。取值为:
0 flexFocusNone
1 flexFocusLight
2 flexFocusHeavy
1 flexGridFlat(实线)
2 flexGridInset(突出)
3 flexGridRaised
GridLinesFixed
获得或设置固定行和列的画线的类型。取值为:
0 flexGridNone(无网络线)
1 flexGridFlat(实线)
2 flexGridInset(突出)
3 flexGridRaised(凹陷)
该控件获得焦点时,失去焦点的控件的Validate事件是否发生。取值为:
True发生
False不发生
Clos
决定FlexGrid中的总列数
DataSource
获得或设置控件的数据源
DragIcon
该对象在拖动过程中鼠标的图标
DragMode
该对象的拖动模式,取值为:
0 vbManual(手动)
1 vbAutomatic(自动)
Enabled
用于设定是否对事件产生响应。取值为:
True可用
False不可用。在执行程序时,该对象用灰色显示,并且不响应任何事件
FillStyle
决定是否设置FlexGrid的文本属性或单元格属性之一可以应用到全部已选的单元。取值为:
0 flexFillSingle
1 flexFillRepeat
PS制作Flex皮肤
PS制作Flex皮肤本文主要介绍了如何通过使用Photoshop CS4创建Adobe的Flex应用程序的外观CS3。
同样的,如果你比较熟悉Adobe Flash, Adobe Illustrator, and Adobe Fireworks 这些adobe 公司的开发工具,一样可以利用这些工具的插件开发flex应用程序的皮肤。
这里重点讲解一Acrobat 文档个ps 的用法。
更多资料请参阅首先我们讲解下皮肤的定义。
关于皮肤Skining通过修改或替换的可视元素的过程中,改变一个组件的外观。
这些元素可以由位图图像、SWF文件或包含绘图方法定义的类文件或矢量图像。
皮肤可以为在各种状态下的组件定义的整个外观,或只有一部分的外观。
例如,Button控件有8个可能的状态,和8个相关的皮肤属性,如下面的示例:默认外观的up,over和down状态显示如下:A. upB. overC. down其他控件也有类似的状态与相关的皮肤。
例如,RadioButton是Button的子类,也有up,over和down skins。
ComboBox控件定义皮肤时,它的外观的控制是disabled, down, and over。
皮肤类型我们通常会定义一个皮肤位图图形或为矢量图形。
位图图形的缺点是,它通常是定义特定的分辨率,如果您修改图像缩放或转化的,你可能会注意到一个退化图像质量。
一个矢量图形,由一组线的定义指定的起点和终点的一条线,它的厚度、颜色,以及其他信息需要由Flash Player划清界线。
当一个矢量图形缩放,旋转,或修改在一些其他的方式,它是相对简单计算为Flash Player新的布局,矢量图形转换线定义。
因此,您可以执行多种类型的矢量图形的修改却没有任何质量退化。
程序化的皮肤的一大优势是,你可以用程序代码创建矢量图形。
例如,您可以开发程序化的皮肤Flex的创作环境或任何文本编辑器,而不使用图形工具,flash倾向于使用更少的内存,因为它们不包含任何外部图像文件。
Flex布局做出自适应页面(语法和案例)
Flex布局做出⾃适应页⾯(语法和案例)Flex布局简介Flex英⽂为flexiable box,翻译为弹性盒⼦,Flex布局即弹性布局。
Flex布局为盒⼦模型提供了很⼤的灵活性,任何⼀个容器都可以指定为Flex布局,设置⽅法为:.box{display: flex;}⾏内元素使⽤Flex布局.box{display: inline-flex;}在webkit内核的浏览器上必须加上webkit前缀.box{display: flex;display: -webkit-flex;}注意:使⽤Flex布局之后,⾥⾯的float、clear、vertical-align属性将失效。
Flex布局中的基本概念采⽤ Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。
它的所有⼦元素⾃动成为容器成员,称为 Flex 项⽬(flex item),简称"项⽬"。
容器默认存在两根轴:⽔平的主轴(main axis)和垂直的侧轴(cross axis)。
主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;侧轴的开始位置叫做cross start,结束位置叫做cross end。
项⽬默认沿主轴排列。
单个项⽬占据的主轴空间叫做main size,占据的侧轴空间叫做cross size。
容器的属性1、flex-driection2、flex-wrap3、flex-flow4、justify-content5、align-items6、align-content1、flex-driection设置项⽬的排列⽅向,默认为rowflex-driection: row | row-reverse | column | column-reverse当设置为flex-driection: row,效果:当设置为flex-driection: row-reverse,效果:当设置为flex-driection: column,效果:当设置为flex-driection: column-reverse,效果:如下代码直接复制保存为html⽂件即可以查看效果:<style type="text/css">.box{display: flex;display: -webkit-flex;/*⽔平⽅向,左端对齐*/flex-direction: row;/*⽔平⽅向,右端对齐*//*flex-direction: row-reverse;*//*垂直⽅向,顶部对齐*//*flex-direction: column;*//*垂直⽅向,底部对齐*//*flex-direction: column-reverse;*/background: #999;width: 100%;}.box span{margin: 10px 10px;padding: 10px;background: #ff0;width: 50px;}</style><div class="box"><span>你好1</span><span>你好2</span><span>你好3</span><span>你好4</span></div>2、flex-wrap设置项⽬是否在⼀条线上,默认为nowrapflex-wrap: wrap | nowrap | wrap-reverse当设置为flex-wrap: wrap,效果:当设置为flex-wrap: nowrap,效果(不换⾏,默认会缩放):当设置为flex-wrap: wrap-reverse,效果(第⼀⾏在下⽅):如下代码直接复制保存为html⽂件即可以查看效果:<style type="text/css">.box{display: flex;display: -webkit-flex;/*换⾏*//*flex-wrap: wrap;*//*不换⾏,默认*//*flex-wrap: nowrap;*//*换⾏,第⼀⾏在下⽅*//*flex-wrap: wrap-reverse;*/background: #999;width: 100%;}.box span{margin: 10px 10px;padding: 10px;background: #ff0;width: 50px;}</style><div class="box"><span>你好1</span><span>你好2</span><span>你好3</span><span>你好4</span><span>你好5</span><span>你好6</span><span>你好7</span></div>3、flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap4、justify-content属性定义项⽬在主轴上的对齐⽅式,默认值为flex-startjustify-content: flex-start | flex-end | center | space-between | space-around当设置为justify-content: flex-start,效果:当设置为justify-content: flex-end,效果:当设置为justify-content: center,效果:当设置为justify-content: space-between,效果:当设置为justify-content: space-around,效果:如下代码直接复制保存为html⽂件即可以查看效果:<style type="text/css">.box{display: flex;display: -webkit-flex;/*默认,项⽬左对齐*/justify-content: flex-start;/*项⽬右对齐*//*justify-content: flex-end;*//*项⽬居中对齐*//*justify-content: center;*//*项⽬两端对齐*//*justify-content: space-between;*//*每个项⽬两侧的间隔相等*//*justify-content: space-around;*/background: #999;width: 100%;}.box span{margin: 10px 10px;padding: 10px;background: #ff0;width: 50px;}</style><div class="box"><span>你好1</span><span>你好2</span><span>你好3</span><span>你好4</span><span>你好5</span><span>你好6</span><span>你好7</span></div>5、align-items属性定义项⽬在纵轴上的对齐⽅式,默认值为stretch,适⽤于项⽬在纵轴上⾼度不⼀样的情况,为了更好的看到效果,我为项⽬添加了⼀些样式align-items: flex-start | flex-end | center | baseline | stretch当设置为align-items: flex-start,效果:当设置为align-items: flex-end,效果:当设置为align-items: center,效果:当设置为align-items: baseline,效果:当设置为align-items: stretch,效果:如下代码直接复制保存为html⽂件即可以查看效果:<style type="text/css">.box{display: flex;display: -webkit-flex;/*纵轴的顶部对齐*//*align-items: flex-start;*//*纵轴的底部对齐*//*align-items: flex-end;*//*纵轴的中点对齐*//*align-items: center;*//*项⽬的第⼀⾏⽂字的基线对齐*//*align-items: baseline;*//*默认对齐⽅式,如果项⽬未设置⾼度或设为auto,将占满整个容器的⾼度*/align-items: stretch;background: #999;width: 100%;}.box span{margin: 10px 10px;padding: 10px;background: #ff0;width: 50px;}.box span:nth-of-type(2n){height: 80px;padding-top: 20px;}</style><div class="box"><span>你好1</span><span>你好2</span><span>你好3</span><span>你好4</span><span>你好5</span><span>你好6</span><span>你好7</span></div>6、align-content属性定义了多根轴线的对齐⽅式。
Flex4自定义分页组件
Flex4自定义分页组件最近因为项目需求,需要写个分页组件,我这人比较懒一般写出来之后就记下来供以后粘贴复制了哈哈,希望大家学习的时候不要这样搞啊下面贴出代码PagingBar.mxml[html]<?xml version="1.0" encoding="utf-8"?><mx:HBox xmlns:fx=":///mxml/2009"xmlns:s="library:///flex/spark"xmlns:mx="library:///flex/mx" ><fx:Script><![CDATA[import mx.collections.ArrayCollection;import mx.events.ItemClickEvent;import flash.events.KeyboardEvent;import mx.controls.DataGrid;import mx.validators.NumberValidator;import mx.rpc.events.ResultEvent;import mx.rpc.events.FaultEvent;import mx.controls.Alert;[Bindable][Embed(source='com/iman/sps/sheet/image/first.jpg')]public var firstIcon:Class;public var firstPage:uint;[Bindable][Embed(source='com/iman/sps/sheet/image/pre.jpg')]public var preIcon:Class;public var prePage:uint;[Bindable][Embed(source='com/iman/sps/sheet/image/next.jpg')]public var nextIcon:Class;public var nextPage:uint;[Bindable][Embed(source='com/iman/sps/sheet/image/last.jpg')]public var lastIcon:Class;public var lastPage:uint;[Bindable]public var pageSize:int=15;//单页行数[Bindable]public var totalPage:int=1;//总页数[Bindable]public var currentPage:int=1;//当前页[Bindable]public var totalClum:int=0;//总记录数//分页函数public var localFunction:Function=null;//重新为当前页的变量赋值public function loadData(pageNum:int):void{this.pageSize = setPageSize.selectedItem.data as Number;this.totalPage =Math.ceil(this.totalClum/this.pageSize);if(pageNum>0 && pageNum<=this.totalPage){this.currentPage=pageNum;if(this.localFunction!=null){localFunction(pageNum);}else{Alert.show("请设置回调方法!");}}}//重新设置每页显示记录数public function changePagesize():void{//当前页首条记录的序号var currentPageRows:int=((this.currentPage-1)*this.pageSize);//Alert.show(String(currentPageRows));//重新设置以后,单页显示记录数this.pageSize = setPageSize.selectedItem.data as Number;//重新设置以后,总页数this.totalPage =Math.ceil(this.totalClum/this.pageSize);//重新调整当前页码//Alert.show(String(newPageNum));if(this.localFunction!=null){localFunction(this.currentPage);}else{Alert.show("请设置回调方法!");}}]]></fx:Script><mx:Text id="temp" text="" visible="false" includeInLayout="false"/><mx:HBoxverticalGap="0"horizontalGap="0"horizontalAlign="center"verticalAlign="middle"><mx:Text text="{' 共'+(totalClum)+'条记录'}" fontSize="12"/><mx:Label text="每页显示:"/><mx:ComboBox id="setPageSize" width="52" height="16" change="changePagesize()"><mx:dataProvider><fx:Array><fx:Object label="15" data="15" /><fx:Object label="20" data="20" /><fx:Object label="30" data="30" /><fx:Object label="40" data="40" /><fx:Object label="50" data="50" /><fx:Object label="60" data="60" /><fx:Object label="70" data="70" /><fx:Object label="80" data="80" /></fx:Array></mx:dataProvider></mx:ComboBox><mx:Label text="条"/><mx:Button id="firstNavBtn" icon="{firstIcon}" width="10" height="10" click="loadData(1)" enabled="{lbtnPrevious.enabled}"/><mx:LinkButton id="lbtnFirst" label="首页" click="loadData(1)" enabled="{lbtnPrevious.enabled}" fontSize="12"/><mx:Button id="preNavBtn" icon="{preIcon}" width="7" height="10" click="loadData(currentPage-1)" enabled="{currentPage!=1?true:false}"/><mx:LinkButton id="lbtnPrevious" label="上一页" click="loadData(currentPage-1)" enabled="{currentPage!=1?true:false}" fontSize="12"/><mx:Text text="{'【 '+(Math.ceil(this.totalClum/this.pageSize)>0?(currentPage):1)+'/'+(Math.ceil(this.totalClum/this.pageSize)>0?Math.ceil(this.totalClum/this.pageSize):1)+'页】 '}" fontSize="12"/><mx:Button id="nextNavBtn" icon="{nextIcon}" width="7" height="10" click="loadData(currentPage+1)" enabled="{Math.ceil(this.totalClum/this.pageS ize)>(currentPage)?true:false}"/><mx:LinkButton id="lbtnNext" label="下一页" click="loadData(currentPage+1)" enabled="{Math.ceil(this.totalClum/this.pageSize)>(currentPage)?true:false}" fontSize="12"/><mx:Button id="lastNavBtn" icon="{lastIcon}" width="10" height="10" click="loadData(Math.ceil(this.totalClum/this.pageSize))" enabled="{lbtnNext.en abled}"/><mx:LinkButton id="lbtnLast" label="尾页" click="loadData(Math.ceil(this.totalClum/this.pageSize))" enabled="{lbtnNext.enabled}" fontSize="12"/><mx:Label text="跳转到"/><mx:NumericStepper id="nsPageNum" width="50" height="22" stepSize="1" minimum="1" maximum="{Math.ceil(this.totalClum/this.pageSize)}" enab led="{lbtnJump.enabled}" cornerRadius="0" fontSize="12"/><mx:Label text="页"/><mx:LinkButton id="lbtnJump" label="GO" click="loadData(nsPageNum.value)" enabled="{Math.ceil(this.totalClum/this.pageSize)>1?true:false}" fontS ize="12"/></mx:HBox></mx:HBox>在其他组件中引用其中common 是我自定义的标签里面引入了这个分页组件的所在位置例如:xmlns:common="mon.*"[html]<common:PagingBar width="100%" height="5%" id="pageBar"></common:PagingBar>写完之后说说怎么用。
自定义窗口的外观 _ 开发人员中心
安装和测试应用程序 我们特意将CustomChrome应用程序设计得很简单。旨在介绍有关如何实现自定义窗口镶边的基础知识。 若要测试应用程序,请下载并运行应用程序安装程序(CustomChrome.air)。可以最大化、最小化和还原窗口,在桌面上 四处拖动窗口,以及调整窗口大小。在窗口中单击右键可以在新窗口中打开源代码浏览器。
自定义窗口的外观|开发人员中心
/cn/devnet/air/flex/quickstart/cust...
关闭窗口的系统镶边可以非常充分地施展创造力,但同时也会失去操作系统为标准窗口提供的自动管理窗口大小、位置 和显示状态的功能。图1中显示的CustomChrome范例应用程序演示如何充分利用自建镶边的某些创造性优势,以及 如何替代操作系统不再提供的窗口管理服务。
根据anchorType参数将控件停靠至窗口边框。“TR”值指定将控件停靠至右上角。 按钮镶边 为了实现用于控制窗口状态的按钮,CustomChrome扩展Chrome类,并添加SimpleButton对象作为镶边元素的子 对象。按钮状态的图像由buttonchrome类加载。每个buttonchrome类还添加事件侦听器,并将offset和 anchorType参数传递至Chrome超类。 移动手柄和调整大小手柄镶边 为了实现移动手柄和调整大小手柄,CustomChrome扩展Chrome基类,并添加chromeimage作为子类。使用 PNG文件作为图像,因此可以定义透明区域。在图像的透明区域中不捕获鼠标事件。
镶边的类型 CustomChrome范例使用四种常用类型的窗口镶边: 按钮:SimpleButton对象和鼠标单击事件,用于关闭、最大化、最小化和还原窗口。 移动手柄:基于位图的子画面以及鼠标按下事件,用于实现窗口的移动。 调整大小手柄:基于位图的子画面以及鼠标按下事件,用于实现对窗口大小的调整。CustomChrome范例只实现 了从右下角调整大小,但AIR支持从窗口的每个边角调整大小。 背景:使用Sprite对象和矢量绘画命令绘制不规则的背景。
Flexsim软件讲解
模型二
目的
观察添加一台处理器对模型的影响 介绍“Send to port” 项
描述
在模型一的基础上添加一台处理器
问题
模型一中的问题 如果40%的原料由处理器1加工,60%由处理 器2加工,原料在存放区停留时间将如何变化
第四章
Flexsim对象库
固定资源(FixedResources) 任务执行器(TaskExecuters)
实体、实体类型
实体(flowitem)–在模型中流动的产品、 顾客、电话呼叫 等在Flexsim中称作 flowitems。 实体类型(itemtype)– 所有Flexsim实体 (flowitem)都有一个数值型标签用以区别 不同的实体,根据模型要求,可以代表条 码,产品类型,部件号等。
端口(ports)
右键单击对象,在弹出菜单中选择 Properties 用于编辑和查看所有对象都拥有的一般性信息
模型树视图(Model Tree View)
模型中的所有对象都在层级式树结构中列出 包含对象的底层数据结构 所有的信息都包含在此树结构中
参数窗口(Parameters Window)
每个对象类有自己的参数 窗口 参数影响实体在对象中的 停留时间和在对象间流动 的线路 Apply(应用)——使改 变生效 OK(确定)——使改变 生效并关闭窗口 Cancel(取消)——关闭 窗口,不做改变 Properties——打开对象 的属性窗口
Statistics(统计)
吞吐量、状态、队长、停 留时间 示数、图表
对象尺寸和转角
属性窗口中可以定义对 象的位置、尺寸和转角 此外,在模型窗口中也 可以实现
启用“Edit”(编辑)菜 单中的Resize and Rotate Objects(编辑对象尺寸和 转角)
FLEX4的皮肤skin
FLEX4的皮肤skin2010年01月14日星期四 13:401.SparkSkin介绍(1)spark.skins,这个包里面只有一个class:SparkSkin,非美工的程序员可以通过这个class来实现任意自定义控件的样式。
(2)SparkSkin是一个Group类型的容器。
(它继承自Group)(3)全部的mx.spark的可视化控件的外观全部都是SparkSkin的子类(4)SparkSkin:是全部Spark Class的基础类,也就说全部的mx.spark 的可视化控件的外观全部都是SparkSkin的子类。
Skin:是SparkSkin的父类,例如ButtonBarSkin就是Skin的子类,如果想要自定义这部分组件的样式,则需要使用Skin。
综上所述,也就是可以使用SparkSkin的地方,我们使用Skin一样可以达到同样的效果。
2.SparkSkin示例在Flex SDK 4(Gumbo)中,我们只需要将这个button的样式继承与SparkSkin或者Skin,然后在其中加入一些我想要的内容即可,请看以下的代码:<?xml version="1.0" encoding="utf-8"?><s:SparkSkinxmlns:s="library:///flex/spark"xmlns:fx="/mxml/2009"><s:states><s:State name="up"/><s:State name="over"/><s:State name="down"/><s:State name="disabled"/></s:states><fx:Metadata>[HostComponent("ponents.Button")]</fx:Me tadata><s:Ellipse width="100%" height="100%"><s:fill><s:SolidColor color="0x131313" color.over="#191919" color.down="#ffffff"/></s:fill><s:stroke><s:SolidColorStroke color="0x0c0d0d" /></s:stroke></s:Ellipse><s:RichText id="labelElement"fontFamily="Myriad Pro"fontSize="11"color="0xBBBBBB"textAlign="center"horizontalCenter="0"verticalCenter="1"width="100%"></s:RichText></s:SparkSkin>我们可以用以下几个方式:(1) Button {skinClass: ClassReference("com.rianote.flex.skin.KButton");}(2)<Button skinClass="com.rianote.flex.skin.KButton" />(3)myButton.setStyle( "skinClass", Class( KButton ));其中skinClass也是Flex SDK 4(Gumbo)里面新增加的一个class,其作用就是设定当前这个组件的Skin。
Flex 4 样式与布局小结
Flex 4 样式与布局第一篇 Flex 4 与自定义布局(Layout)Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。
您需要做的就是定义一个自定义布局。
Flex 4/Spark架构中的容器并不控制它们自己的布局。
相反,每种容器具有一个布局属性,用于确定如何在屏幕上设置子元素的布局。
可以使用一个单独的Group容器,并赋予其一个垂直布局、水平布局或平铺布局,这取决于您将如何创建它。
代码很简单,如下所示:(参考文章:Flex 4与自定义布局:译文:/lihe111/archive/2009/07/06/4325571.aspx原文:/2009/05/flex-4-custom-layouts.html)第二篇 Flex 4 SkinClass 改变组件外观在Flex 4中,SkinClass指向的文件通常用一个使用s:skin标签(或者sparkskin)的MXML 文件进行定义。
通过skinclass来改变外观的spark组件通常也是skinclass引用的Host component。
Flex 4 中新的改变外观架构可以在很大的程度上将组件和组件的外观设计分开,这样组件外观设计的代码通过改变小部分的代码就可以得到重用了。
一、SkinClass必须包含的三样东西:1、HostComponent metadataSkinClass文件需要引用HostComponent对象,而HostComponent是指需要改变外观的组件。
我们可以通过metadata标签来指定HostComponent。
如:我们需要设置Button 的外观,那么Button就是HostComponent。
Code:1.<fx:Metadata>2. <![CDATA[3. [HostComponent("ponents.Button")]4. ]]>5.</fx:Metadata>2、States如果HostComponent中有SkinState(一般用metadata标签来声明),例如:s: ButtonBase 中包含了 1. [SkinState("up")]那么在相应的skinclass mxml 文件中必须有如下相应的state : 1. <s:states>2. <s:State name="up"/>3、 Skin partsHostComponent 中的属性可以被定义为必须或者是可选的部分(skin parts ),可选的属性一般通过metadata 标签将其默认设置为false 。
第4章 Flex 4系统组件:基本组件
(3)设置相对大小。 将组件的width和height属性设置为百分比,表示组件宽度和高度相对于父类容器 (包含组件的容器)宽度和高度的百分比值。设定相对大小以后,组件随父类容器的 大小改变而改变。例如: <s:Panel title="相对大小组件" width="60%" height="60%"> <s:TextInput id="txt" text="输入框组件" width="50%" height="50%"/> </s:Panel> 效果如图4.6所示。
(4)使用约束布局定义组件大小。 Flex 4中进行约束布局的主要属性如下所示。 top:从组件的上边缘到锚点目标的上边缘的垂直距离。 bottom:从组件的下边缘到锚点目标的下边缘的垂直距离。 left:从组件的左边缘到锚点目标的左边缘的水平距离。 right:从组件的右边缘到锚点目标的右边缘的水平距离。 horizontalCenter:从组件中心到锚点目标的内容区域中心的水平距离。 verticalCenter:从组件中心到锚点目标的内容区域中心的垂直距离。 baseline:从锚点目标到控件的基线位置的垂直距离。 percentWidth:以组件父项大小百分比的方式指定组件宽度的数字,允许的 值为0~100。 percentHeight:以组件父项大小百分比的方式指定组件高度的数字,允许的 值为0~100。
运行效果如图所示,其中第一个组件可编辑,第二个组件不可编辑。
5.富文本编辑器组件 RichTextEditor组件是Halo组件,在Flex 4仍然可以使用。命名空间使用mx,但在 Flash Builder 4的组件窗口中没有该组件的标签。这个组件可以输入文本并设置其格 式。用户可以更改的文本特征包括字体系列、颜色、大小和样式,以及其他属性 (如文本对齐方式、项目符号和URL链接)。例如: <mx:RichTextEditor id="r1" title="RichTextEditor Example" height="254" text="This is RichTextEditor Example!!" width="331"/> 效果如图所示。
flex 各组件对应的样式属性大全
backgroundColor backgroundAlpha borderColor textRollOverColor Accordion 组件样式属性 headerHeight dropShadowEnabled shadowDistance shadowDirection dropShadowColor borderStyle borderThickness backgroundColor
边框样式 inset outset 四种样式
borderColor borderThickness dropShadowEnabled shadowDistance
边框颜色 边框粗细 是否显示投影 投影大小 0~20
Tab 中主体内容的边框颜色 borderStyle 为 solid 时有效 数值从 0~20 true 和 false 2 个属性 dropShadowEnabled 为 true 时有效 数值从
意不是 Tab 主体内变色,这个属性要设置 2 个色彩,
渐变起始色和渐变结束色,中间以逗号分隔
fillAlphas
Tab 填充色透明度 0.00~1.00
未选中的 Tab 的填充色透明度这个属性要设置 2 个值,
渐变起始色透明度和渐变结束色透明度,中间以逗号分隔,数值从
dropShadowColor color
投影的颜色 主体内容的文本颜色
若想设置 TabNavigator 中 tab 中的样式,为了不与 TabNavigator 中样式相冲突,需在样式表中定义 一个引用的样式. TabNavigator { ... tabStyleName:"myTabs"; ... } 然后新定义一个 myTabs 样式来设置 tab 的样式. myTabs 中的设置 cornerRadius Tab 边角圆角度 每个 Tab 的边角圆角度 从 0~20 注
flex 自定义组件
flex 自定义组件实现一个自定义组件如果要创建一个自定义组件,你需要重写UIComponent类的某些方法,最少需要重写如下方法:构造函数, createChildren(), commitProperties(), measure(), layoutChrome(), updateDisplayList() 。
基础语句结构如下:package myComponents{public class MyComponent extends UIComponent{ .... }}注意包名与你的磁盘目录结构一致。
接下来一一讲解每个方法的重写。
构造函数示例如下:public function 类名() {super();}注意,AS3中构造函数不支持重载。
createChildren()此方法的作用是在此自定义组件中创建子组件。
此方法不用你去调用,Flex在你将此自定义组件使用addChild方法加入到父组件时自动调用。
示例如下:// Declare two variables for the component children.private var text_mc:TextArea;private var mode_mc:Button;override protected function createChildren():void {// Call the createChildren() method of the superclass.super.createChildren();// Test for the existence of the children before creating them.// This is optional, but do this so a subclass can create a different// child.if (!text_mc) {text_mc = new TextArea();text_mc.explicitWidth = 80;text_mc.editable = false;text_mc.addEventListener("change", handleChangeEvent);// Add the child component to the custom component.addChild(text_mc);}// Test for the existence of the children before creating them.if (!mode_mc) {mode_mc = new Button();mode_bel = "Toggle Editing";mode_mc.addEventListener("click", handleClickEvent);// Add the child component to the custom component.addChild(mode_mc);}}上例使用createChildren()在此自定义组件中加入了一个Label和一个Button。
Flex关于样式专题
关于组件中的样式定义(styles)可以通过style属性来更改Flex组件的外观。
这些样式属性能够定义Label控件的字体大小,或者Tree控件的背景色。
在Flex中,一些样式从父容器传承给它们的子控件,并跨越了样式类型和类。
这意味着,样式能一次性定义,然后将其应用给一个类型的所有控件,或者应用于一系列的控件,而且,也在允许在local,document,global三个级别来重载每个控件的单个(样式)属性,这就给控制应用的外观带来很大的灵活性。
更多信息参见Using Styles and Themes.关于级联样式表中的继承在ActionScript组件中实现一个样式属性,则该属性会自动被所有的子类继承,这同常见的方法和属性继承是一样的,这种类型的继承被称作“面向对象继承”。
一些样式属性也支持级联样式表(CSS)继承,CSS继承的意思是,如果在父容器上设置了样式属性的值,那么在应用运行时,容器的子控件会继承这个属性值。
例如,如果将Panel容器的fontFamily样式设置为Times,那么,这个Panel容器的容器的所有子控件都会使用Times 作为fontFamily样式属性的值,除非,在子控件上重设fontFamily样式属性。
通常颜色(color)和文本(text)的样式支持CSS继承,不论它们的样式通过CSS设置,还是通过style属性进行设置。
除非有其它的说明,所有其它样式不支持CSS继承。
如果在父容器上设置的样式属性不支持CSS继承,比如textDecoration,那么只有父容器使用这个样式值,它的子控件不会使用这个值。
但是CSS继承规则有一个例外,如果在CSS样式定义中使用全局(global)类型(type)选择器(selector),那就不管属性是否可以被继承,都会起作用。
关于样式继承的更多信息参见Using Styles and Themes.关于设置样式Flex提供几种方式来设置组件的样式:使用MXML标记属性,调用setStyle()方法,以及使用CSS.使用MXML标记设置样式组件用户能用MXML标记的属性(attributes)设置组件上的style属性(property)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13.1.1 Flex CSS简介
1.样式名 (1)自定义样式名。 自定义样式名以“.”开头,后接一个自定义的名称,表示此样式为自定义样式
13.1.1 Flex CSS简介
2.属性 Flex中的样式属性既可以在样式中定义,也可以直接在组件属性中设置。以下
根据功能的不同具体介绍在Flex 4中可以应用的常用样式属性。 (1)字体。 Flex 4中的字体类属性主要用于定义组件中字体的样式,常用的字体属性如表
13.1所示。
属性名
fontFamily
fontLookup fontSize fontStyle fontWeight color
说明
要使用的字体名称或用逗号分隔的字体名称列表。Flash运行时使用列表中的第一个可用 字体呈现该元素
要使用的字体查找,有效值为device(系统字体)或embedded_cff(嵌入字体) 字体大小,默认单位为像素 是否使用斜体,值为normal时用于纯文本,值为italic时用于斜体 字体是否粗细,有效值为normal(正常)或bold(加粗) 字体颜色
paddingBottom
paddingTop
horizontalCenter
verticalCenter
说明 从组件左边到其父容器的内容区域左边之间的水平距离 从组件右边到其父容器的内容区域右边之间的水平距离 从组件顶边到其父容器的内容区域顶边之间的垂直距离 从组件底边到其父容器的内容区域底边之间的垂直距离 容器左边缘与文本之间的空间 容器右边缘与文本之间的空间
contentBackgroundAlpha
rollOverColor cornerRadius
alternatingItemColors
accentColor
说明 组件的整个边界矩形的背景色 由backgroundColor 样式定义的颜色的透明度值 组件的主要颜色,仅适用于spark主题 组件内容的背景颜色,仅适用于spark主题
组件内容背景的透明度,仅适用于spark主题
鼠标位于组件上时加亮的颜色 组件的角的半径 列表中项目使用的背景色。此值是由两种或更多种颜色组成的数组。列表项目的 背景色将从数组中的各种颜色之间选取 组件外观使用的强调文字颜色,仅适用于spark主题
13.1.1 Flex CSS简介
(5)边框。 Flex 4中的边框类样式属性用于设置组件的边框样式,常用的属性如表13.5所示。
13.1.1 Flex CSS简介
(4)分组样式名。 分组样式名用于定义几种内容完全相同的样式,不同的样式名之间使用逗号“,” 隔开,从而使CSS代码更简洁。例如: .myStyle, s|Button {
fontSize:15; color:#000fff; } (5)全局选择器。 使用global关键字作为样式名将定义一个全局样式,这样就可以将该样式应用到 程序中的所有组件中,除非组件重写某个组件的样式。例如: global { fontSize:15; color:#ff00ff; }
13.1.1 Flex CSS简介
以下代码定义字体的样式: .test {
fontFamily:黑体; fontSize:18; fontStyle:italic; fontWeight:bold; color:blue; } 应用样式后的效果如图所示。
13.1.1 Flex CSS简介
(2)文本。 Flex 4中的文本类属性主要用于定义文本的样式,常用的文本属性如表13.2所示。 以下代码定义了文本样式: .test {
名,例如以下代码定义了一个自定义样式myStytle: .myStytle { fontSize:15; color:#000fff; }
13.1.1 Flex CSS简介
(2)组件名作为样式名。 例如以下代码: <fx:Style>
@namespace s "library:///flex/spark"; @namespace mx "library:///flex/halo"; s|Button { color: #ff0000; } mx|Button { color: #000000; } </fx:Style>
第13章 Fl1 样式
❖ 13.1.1 Flex CSS简介 CSS(Casscading Style Sheet)是层叠样式表的简称,它是描述文档怎样被呈现
的语言,由W3C指定为规范。CSS标准最早应用于Web开发中,使得程序开发和界面 开发分离,可以对网页获得更好的控制和更高的灵活性。
13.1.1 Flex CSS简介
(3)组件id作为样式名。 将组件的id值作为样式名,在组件的id值前面加上“#”,可以直接对某一个组 件设置样式,例如: #okButton {
fontSize:15; color:#ffffff; } 组件代码如下所示: <s:Button id="okButton" label=" Id设置样式"/>
textAlign:right; textAlpha:0.5 } 设置文本样式后的结果如图所示。
13.1.1 Flex CSS简介
(3)定位。 定位样式属性用于组件的定位,常用的定位属性如表13.3所示。
属性名 left right top bottom paddingLeft paddingRight
容器底部边缘与文本之间的空间
容器顶部边缘与文本之间的空间
从组件内容区域的中心到组件中心的水平距离
从组件内容区域的中心到组件中心的垂直距离
13.1.1 Flex CSS简介
(4)背景。 Flex 4中的背景类样式属性用于设置组件的背景样式,常用的属性如表13.4所示。
属性名 backgroundColor backgroundAlpha chromeColor contentBackgroundColor