- 浏览: 1461027 次
- 性别:
- 来自: 苏州
-
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
在Flex 2提供的众多新特性中,其中之一就是constraints-based(基于约束的)布局。如果你以前没有机会研究约束(constraints)的使用,我建议你在这种方法上花一些时间。一开始我很怀疑,但是自从用了之后就真正喜欢上了这个轻量级的布局(相比之下,为了得到复杂的布局,flow-based布局方式经常让你陷入box的深层嵌套中)。constraints-based布局的核心是一系列的属性,让你可以定义控件和容器的布置和锚点。
澄清一点:flow-based布局和constraints-based布局并不是互不相容。使用Flex Builder的设计试图,通过将这二种布局结合让他们发挥各自的优势可以加快开发。
我对这些约束(constraints)属性很是好奇,所以有一天我就在语言参考中查找它们。我发现的是他们并不都是属性!一些我曾经用来内联(inline)的约束(constraints)实际上是样式(styles)。这就是说我可以扩展他们并通过一个外部CSS来控制我的用户界面的外观。以下面的代码和屏幕截图作为起点吧。
<mx:Application layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Panel x="10" y="10" width="274" height="148" layout="absolute" title="Login"> <mx:Label x="10" y="12" text="Username:" /> <mx:TextInput x="85" y="10" /> <mx:Label x="10" y="42" text="Password:" /> <mx:TextInput x="85" y="40" displayAsPassword="true" /> <mx:ControlBar> <mx:Button label="Login" /> </mx:ControlBar> </mx:Panel> </mx:Application>
在第一部分,当你观察屏幕和代码时,没有什么明显的错误和不足。但是当你仔细一点观察时,你会发现这个用户界面的组合方式的一些缺陷。例如,你可能发现这个登录框总是在应用程序的左上角。但是我们很可能希望通过调整屏幕使它在程序的中间。
这个登录框还被特定地设置成去适应文本框控件的大小。这里并没有文本框控件的宽度信息,所以它们的宽度是默认的150像素。如果我需要向登录框中添加另外一个域并且前面的标签比现有的“username”和“password”标签长,将会发生什么?
这可能会迫使我把文本框向右移动。为了保持对齐,然后我还要重新访问其它的对话框并且让它们向右移动。所有的这些向右移动意味着这个面板要更宽。如果面板中的内容可以在容器的边界范围内自动排列,这会不会变得容易些?
约束(constraints)使我很轻松地解决了这些类型的问题。它们还让我通过Flex Builder的设计试图全部都这样做了(使用约束(constraints))。让我们重新看一些添加了约束(constraints)的代码和屏幕截图。
<mx:Application layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Panel width="275" height="150" horizontalCenter="0" verticalCenter="0" layout="absolute" title="Login"> <mx:Label left="10" top="12" text="Username:" /> <mx:TextInput left="85" right="10" top="10" /> <mx:Label left="10" top="42" text="Password:" /> <mx:TextInput left="85" right="10" top="40" displayAsPassword="true" /> <mx:ControlBar> <mx:Button label="Login" /> </mx:ControlBar> </mx:Panel> </mx:Application>
现在不管屏幕如何调整,对话框将会一直在程序的中央。另外,不管面板本身大小如何,username和password标签和文本框控件会一直在它们和面板的相对位置上。作为一个附加的效果,我还可以对面板的宽和高的数值进行取整处理(以前是274*148,现在是275*150)。由于这些控件现在可以适当自己调整大小,所以做一些细微的变化变得很容易。
注意所有的X和Y属性现在都没了,因为用户界面的布局现在都是相对于应用程序其他部分的。
然而还有一个关于用户界面的问题在困扰着我,那就是控制栏(ControlBar)中左对齐(默认方式)的“Login”按钮。大部分操作系统将控制按钮排列在对话框的右下方。这很容易更改,对吗?ControlBar默认遵循Hbox的布局。我们可以对它使用约束(constraints),这种布局为我们工作得很好,就像像刚才,避免了讨厌的对齐工作。
幸运的是,ControlBar容器有一个“horizontalAlign”样式,我可以把这个样式内联,写在标签左边,或者我可以把它放到源代码中任何一个样式块中。大多数情况下我们把样式写到一个样式块中,但是接下来我们将更进一步。我们不喜欢把所有这些风格嵌入到应用程序本身中,所以我们会将它们写到一个外部CSS文件中。现在我们所做的所有更改都会集中在这一个文件中。
但是那些约束(constraints)怎么办?我没有提到过他们也都是样式么?他们也是样式,也可以被提取到同样的CSS中。让我们再来看一下这个应用程序的源代码和屏幕截图。
<mx:Application layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Style source="constraints3.css" /> <mx:Panel width="275" height="150" layout="absolute" title="Login"> <mx:Label text="Username:" styleName="userlabel" /> <mx:TextInput styleName="userinput" /> <mx:Label text="Password:" styleName="passlabel" /> <mx:TextInput displayAsPassword="true" styleName="passinput" /> <mx:ControlBar> <mx:Button label="Login" /> </mx:ControlBar> </mx:Panel> </mx:Application>
这个屏幕截图和前面的那个几乎一样,除了“Login”按钮现在对齐到了右边—吆吼!代码只改变了很少,而且改变方式很优雅。现在在适当的地方用样式名取代了原来的约束(constraints)。所有那些讨厌的直接绑定在特定控件上的约束(constraints)现在消失了。实际上它们仍然在那里并且明显看到它们仍然在应用,但是它们现在都在外部的CSS文件中。那个CSS文件才是魔法真正上演的地方,让我们凑近看一下。
ControlBar { horizontal-align: right; } Label { left: 10; } Panel { horizontal-center: 0; vertical-center: 0; } TextInput { left: 85; right: 10; } .userlabel { top: 12; } .userinput { top: 10; } .passlabel { top: 42; } .passinput { top: 40; }
首先你会发现我在适合对那些控件在块中定义样式的地方用了CSS选择器(selectors)。当你看到TextInput块时,你会发现我没有定义字体和颜色,而是定义了left和right 约束(constraints),因为我希望我的所有的文本框控件都纵向排列,并且保持同样的宽度(相对于容器的边界),定义块级风格就很有意义。文本框和容器顶部关系的约束(constraints)的控制被放在在一个CSS 类别声明中。
所有这些中最好的部分是CSS的层叠特性。TextInput 块中的“left”和“right” 约束(constraints)同样会被被用来定义“top”的类别声明所继承。虽然我们刚才只是看了TextInput,但是对于Label来说这些也一样。这些特性通过在MXML中向控件添加“styleName”属性来实现。
CSS 选择器(selector)和类别声明也可以包含字体,颜色和其他的样式信息。
对约束(constraints)使用这种样式化方式向我提供了一些印象非常深刻的性能。让我们假设一下因为一些原因,不管什么样的原因,我们选择让面板在应用程序的左上方。我可以打开CSS,把"vertical-center" 和"horizontal-center"替换为"left" 和 "top"值,然后就完成了。一个更好的例子可能是:假设我们想要重新排列Label和TextInput控件的顺序。
简单修改一下CSS我就能完全改变控件的排列顺序。当我希望“Password”出现在“Username”前面时,它会像纵向排列一样简单,我还可以把Label控件排列在TextInput空间的右边。不用去搜寻修改内联的属性,只是简单的CSS更改。在Flex Builder设计视图中通过双击修改标签来反映它们新的位置,并且其余的控件会像你想象的一样布局!!
发表评论
-
Apache FlexJS 0.0.1 和 Apache Flex FalconJX 0.0.1发布
2015-11-01 19:44 566原文地址:http://note.sdo.com/u/634 ... -
Flash Catalyst 常用键盘快捷键
2011-03-28 15:38 1078转自:http://www.riameeting.com/ ... -
8款很实用的Actionscript写的位图(BitMap)操作类
2011-03-24 12:09 1961AS3 Scale9 Bitmap ... -
VC++ 项目中使用 FLEX
2011-03-24 09:13 19621, http://hi.baidu.com/qinpc/ ... -
flex应用开发/flash应用开发 代做flash作业/flex作业
2011-01-09 20:37 347专业承接flex应用开发/flash应用开发 ... -
脑袋里的秘密,输入姓名就可以知道你在想什么! flex版
2010-12-29 11:34 2560输入名字就可以知道她/他在想什么的工具~~ -
一个flex聊天机器人
2010-12-18 10:42 1668无聊之下所作,供大伙娱乐,随边聊聊。。。 -
Flex:基于Flex-config.xml的命令行编译
2009-07-01 09:33 1913关键字: Flex Flex2 编译 mxmlc ... -
抽出flash与java 用AMF交互代码
2009-06-30 15:09 3673最近做的一个java 与flash通讯的项目,由于项目框 ... -
BulkLoader类和PV3D
2009-06-26 17:02 1983AS3取消了movieclip的loader类,所以加 ... -
使用 Flex Builder 3.x 分析工具 Profile
2009-06-25 11:26 3431前言 关于分析工具 (原文见Flex Builder ... -
AMF3+JAVA的调用范例
2009-06-24 17:44 2576[AS3]AMF3+JAVA的调用范例 amf是Ad ... -
Flex 程序性能测试
2009-06-24 16:02 1966Flex 程序性能测试 作者:叶晖俊 yehui ... -
Flex RemoteObject类参考
2009-06-19 11:39 1259<mx:RemoteObject>标记 ... -
flex画的菱形
2009-05-11 16:19 3478package com { impo ... -
理解 Flex itemRenderer - 第 4 部分: 状态和过渡
2009-05-08 09:23 1730itemRenderer 最擅长与应用 ... -
理解 Flex itemRenderer - 第 5 部分: 效率
2009-05-08 09:21 1784如果您要显示大量 itemRenderer-无论在 Dat ... -
VO to XML converter
2009-05-04 09:00 1167private function convertToXM ... -
Flex全屏
2008-09-26 11:11 1806private function goFullScreen( ... -
ExternalInterface在Firefox下出错的bug
2008-09-16 09:28 3197使用Document Class为避免命名空间冲突,通常会取消 ...
相关推荐
在Flex中使用CSS样式方法是构建富互联网应用程序(RIA)的关键技术之一。Flex是一个基于ActionScript和Flash Player的开源框架,用于开发交互式、数据驱动的Web应用。它允许开发者利用CSS来控制组件的外观和布局,...
- Flex组件库:Flex包含了一套丰富的预定义组件,如Button、Label、List等,这些组件可以直接在MXML中使用,简化了UI开发。 2. **CSS在Flex中的应用** - 样式表:在Flex中,可以使用CSS定义组件的外观和布局,...
在Flex3.0中,通过使用CSS(层叠样式表)可以对用户界面进行详细的定制和美化,使得应用程序的外观与品牌风格保持一致,同时提高用户体验。 一、Flex3.0中的CSS基础 在Flex3.0中,CSS被用来定义组件的外观和布局,...
Flex布局,全称为Flexible Box布局,是CSS3中的一项重要布局模型,专门设计来解决复杂的网页和用户界面的布局问题。它允许开发者更加灵活地控制元素的排列、对齐和大小调整,特别是在响应式设计中表现出强大的适应性...
Flex中的CSS样式 详尽的讲解
D:\GXSKY\Flex\SDK\Flex+Css完全手册D:\GXSKY\Flex\SDK\Flex+Css完全手册D:\GXSKY\Flex\SDK\Flex+Css完全手册D:\GXSKY\Flex\SDK\Flex+Css完全手册D:\GXSKY\Flex\SDK\Flex+Css完全手册D:\GXSKY\Flex\SDK\Flex+Css完全...
在Flex中,使用CSS皮肤的优点包括: 1. **可维护性**:将样式与代码分离,使得界面更新和维护更为便捷,减少了代码的耦合度。 2. **灵活性**:通过修改CSS,可以快速改变组件的整体外观,适应不同主题或品牌需求。 ...
Flex CSS设计器是一款基于Flash技术的工具,专门用于帮助开发者对Flex应用程序中的用户界面控件进行CSS样式设计。这款工具提供了一个可视化的环境,使得设计师和开发者能够更直观、便捷地调整Flex控件的外观和布局,...
- Flexbox在现代浏览器中广泛支持,但在较旧版本的IE浏览器中可能需要使用其他方法(如CSS Grid)或使用polyfill库来实现兼容。 5. **实际应用** - 导航栏:通过`justify-content`实现水平居中或两端对齐。 - ...
在Flex3中,CSS(Cascading Style Sheets)是用于控制组件外观和布局的重要工具,通过定义样式规则,可以实现界面的定制化。 Flex3 CSS样式代码自动生成是一个非常实用的功能,它极大地简化了开发者的工作,尤其是...
本资源“css3_flex使用示例”包含了一些关于CSS3 Flexbox的实际应用案例,帮助开发者深入理解和掌握这一强大的布局工具。 1. **Flex容器与项目** - **flex容器**:设置`display`属性为`flex`或`inline-flex`的元素...
Flex_Css完全手册.pdf
在Flex开发中,CSS(Cascading Style Sheets)是一种强大的工具,用于定义用户界面的外观和布局。通过动态地改变CSS样式,我们可以实现应用程序界面的实时更新,为用户提供更丰富的交互体验。本篇文章将深入探讨如何...
Flex 3 CSS Style 设计器是一款专为Adobe Flex 3框架设计的强大工具,它提供了可视化的界面,使得开发者能够更加直观、便捷地编辑和管理Flex应用程序中的CSS样式。这款工具对于提升Flex应用的用户界面(UI)设计质量...
在WindowsClassic flex 皮肤CSS中,主要涉及以下知识点: 1. **Flex框架**:Flex是基于Apache OpenSource的Flash Player和Adobe AIR运行时,用于构建和部署跨平台、跨浏览器的富客户端应用。它提供了丰富的UI组件库...
1. Flex容器:在CSS中,一个拥有`display: flex`或`display: inline-flex`样式的父元素被称为Flex容器。这个容器中的子元素会按照Flex规则进行排列。 2. 主轴与侧轴:Flex布局定义了主轴(main axis)和侧轴(cross...
在实际应用中,Flex CSS样式可以应用于各种类型的网站和应用,无论是在桌面端还是移动端,都能提供优秀的响应式表现。对于那些需要频繁调整和迭代界面设计的项目,Flex样式生成工具无疑是提高开发效率的利器。 总的...
下面将详细阐述CSSLoader在Flex中的工作原理、使用方法以及它带来的优势。 1. **工作原理**: Flex CSSLoader是通过ActionScript 3.0的类`mx.styles.CSS`来实现的。这个类提供了加载和解析CSS文件的功能。当你在...
《Flex + CSS安全手册》是一份详尽的指南,旨在帮助开发者更好地理解和应用Flex与CSS在构建...通过学习和实践手册中的内容,开发者可以更有效地控制Flex应用的视觉呈现,同时确保CSS的正确使用,避免潜在的安全问题。