flex 4 布局样式

 

Flex 4 样式与布局

第一篇 Flex 4 与自定义布局(Layout)

Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的就是定义一个自定义布局。

 

       Flex 4/Spark架构中的容器并不控制它们自己的布局。相反,每种容器具有一个布局属性,用于确定如何在屏幕上设置子元素的布局。可以使用一个单独的Group容器,并赋予其一个垂直布局、水平布局或平铺布局,这取决于您将如何创建它。代码很简单,如下所示:

             

   
   

<s:layout>

   

         <s:VerticalLayout/>

   

</s:layout>

   
   

 

 

 

 

 

不过真正的好处在于您不必局限于框架中定义的默认布局。您可以轻松定制BaseLayout类来实现自己定制的布局逻辑。

 

             

   
   

  <s:DataGroup

   

    width="100%" height="100%"

   

    dataProvider="{ dataSource }"

   

        itemRenderer="SimpleItemRenderer">

   

   

   

    <s:layout>

   

      <local:CircularLayout />

   

    </s:layout>

   

 

   

  </s:DataGroup>

   
   

 

 

 

 

 

 

 

 

 

 

 

 

(参考文章:Flex 4与自定义布局:

译文:http://blog.youkuaiyun.com/lihe111/archive/2009/07/06/4325571.aspx

原文:http://insideria.com/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 metadata

SkinClass文件需要引用HostComponent对象,而HostComponent是指需要改变外观的组件。我们可以通过metadata标签来指定HostComponent。如:我们需要设置Button的外观,那么Button就是HostComponent。 

Code:

  1. <fx:Metadata>
  2.    <![CDATA[
  3.    [HostComponent("spark.components.Button")]
  4.    ]]>
  5. </fx:Metadata>

 

2、 States

如果HostComponent中有SkinState(一般用metadata标签来声明),例如:

s: ButtonBase中包含了

  1.  [SkinState("up")]

那么在相应的skinclass mxml文件中必须有如下相应的state:

1. <s:states>

  1. <s:State name="up"/>

 

3、 Skin parts

HostComponent中的属性可以被定义为必须或者是可选的部分(skin parts),可选的属性一般通过metadata标签将其默认设置为false。如果s:ButtonBase中包含一下的属性:

             

   
   

[SkinPart(required="false")]

   

public var labelDisplay:TextBase;

   
   

 

 

 

 

那么,skin文件应该包含一下相应的声明:

 

   
   

<s:Label id="labelDisplay"/>

   
   

      

 

 

 

二、SkinClass的使用方法:

(skins.CustomApplicationSkin 为Skinclass指向的mxml文件路径)

1、属性引用:

             

   
   

       <s:Application     name="Spark_Application_skinClass_test"

   

            xmlns:fx="http://ns.adobe.com/mxml/2009"

   

            xmlns:s="library://ns.adobe.com/flex/spark"

   

            xmlns:mx="library://ns.adobe.com/flex/halo"

   

        skinClass="skins.CustomApplicationSkin">

   

</s:Application>

   
   

 

 

 

 

 

 

 

 

2、CSS引入:

             

   
   

       <fx:Style>

   

        @namespace s     "library://ns.adobe.com/flex/spark";

   

        s|Application {

   

            skinClass: ClassReference("skins.CustomApplicationSkin");

   

        }

   

    </fx:Style>

   
   

 

3、AS代码指定,比较适合动态皮肤。

             

   
   

       <fx:Script>

   

        <![CDATA[

   

            import     skins.CustomApplicationSkin;

   

 

   

            protected function     btn_click(evt:MouseEvent):void {

   

                    setStyle("skinClass", CustomApplicationSkin);

   

            }

   

        ]]>

   

    </fx:Script>

   
   

 

 

三、示例

见word文档《Flex 4 skinclass 简单示例》

 

第三篇 Flex 4 CSS

Flex 4 对CSS做了很大的改进,虽然还不能像HTML那样随心所欲,但是也能满足任何项目的要求了。

 

Flex 不支持使用层叠样式表 (CSS) 来控制组件的所有可视方面。属性, 比如 x, y, width 和 height 是 UIComponent 类的属性, 而不是其样式, 因此, 无法在 CSS 中进行设置。您还必须知道您的主题支持哪些属性。Flex 中的默认主题并不支持所有样式属性。

 

在 Flex 中应用样式有许多方法。 某些样式提供更多粒度控制并能以编程方式被执行。其他样式不像那么灵活, 但可能需要较少的计算

 

一、设置样式的几种方式

  • 使用本地样式定义

             

   
   

<fx:Style>
       @namespace mx "library://ns.adobe.com/flex/halo";
       @namespace s "library://ns.adobe.com/flex/spark";
       .solidBorder{ border-style:solid;}
       #solidBorderPaddedVertically{
        padding-top:12;
        padding-bottom:12;
        border-style:solid;
       }
    </fx:Style>

   
   

 

 

 

 

  • 使用外部样式表

             

   
   

<fx:Style     source="external.css"/>

   
   

 

 

  • 使用内联样式

可以像设定组件的属性一样在MXML标签中设定样式属性。内联样式的优先级高于本地样式和外部样式。

例如:<:Button id="myButton" fontSize="15" label="My Button"/>

  • 使用 setStyle() 方法

可以在ActionScript中使用方法来操作组件的样式属性。使用setStyle()方法的优先级是最高的。

setStyle() 方法采用两个参数: 样式名称和样式值。

             

   
   

<fx:Script>

   

       <![CDATA[

   

    private     function initVbox():void

   

    {

   

         box2.setStyle("paddingTop",12);

   

         box2.setStyle("paddingBottom",12);

   

         box2.setStyle("borderStyle","solid");

   

    }

   

   ]]>

   

</fx:Script>

   
   

 

二、Flex CSS样式设置

       详细见文档:《FLEX 4 CSS样式设置例》

1、四种基本的选择方式:

       1)Type

              例如:s|Button{ color: #FFFFFF; }

              适合任意一个Button的实例。

       2)Universal

              例如:* { fontWeight: bold; } (注意要加上*号)

              对程序中所有组件的字体都有效。

       3)Class:由组件的stylename属性引用

              例如:.rounded { cornerRadius: 10;}

              则引用为:<s:Button styleName="rounded" label="Here be a Button"/>

       4)ID:对应组件的ID

              例如:#header{ backgroundColor: #FF0000; } (header为组件的ID)

Note:四种方式可以也可以通过组合形成新的选择方式

       5)组合方式

例如:.main s|Button{ fontSize: 15; }

即对引用Class 为main的组件内所有Button的样式都有影响。

 

2、示例(各种使用方法汇总)

             

   
   

<?xml     version="1.0" encoding="utf-8"?>

   

<s:Application     xmlns:fx="http://ns.adobe.com/mxml/2009"

   

                            xmlns:s="library://ns.adobe.com/flex/spark"

   

                            xmlns:mx="library://ns.adobe.com/flex/halo"

   

                        minWidth="1024"     minHeight="768">

   

      

   

       <fx:Style     source="mycss.css"/>

   

      

   

       <!--1、全局选择:定制全局样式-->

   

       <mx:Button id="s01ID"     x="500" y="20" label="方式1_1号"/>

   

       <s:Button id="s02ID"     x="500" y="50" label="方式1_2号"     />

   

      

   

       <!--2、全局选择器:可在组件的属性里面指定样式类,然后在css中声明相应的样式类-->

   

       <mx:Canvas id="s03ID"     x="500" y="100" width="200"     height="100" styleName="myStyleClass"/>

   

      

   

       <!--3、ID选择:组件ID设置相应的组件样式-->

   

       <mx:Canvas id="can01ID"     x="500" y="220" width="200"     height="100"/>

   

      

   

       <!--4、派生选择:类里面的组件ID来定义样式-->

   

       <s:VGroup id="vGroupID"     x="500" y="350">

   

              <mx:ProgressBar     id="progressBarID"/>

   

       </s:VGroup>

   

 

   

 

   

       <!--5、状态选择:通过状态定义样式,只适用于Button组件-->

   

       <s:Button id="can02ID"     x="500" y="450" width="200"     height="100" label="方式5"/>

   

 

   

</s:Application>

   
   

1)CssTest.mxml 文件

 

 

             

   
   

       /* CSS file */

   

@namespace     s "library://ns.adobe.com/flex/spark";

   

@namespace     mx "library://ns.adobe.com/flex/halo";

   

 

   

/*-----------1、全局选择:定制全局样式-----------*/

   

mx|Button     s|Button{

   

       color: #FF0000;

   

}

 

s|Button{

   

       color: #FF00FF;

   

}

/*-----------2、全局选择器:可在组件的属性里面指定样式类,然后在css中声明相应的样式类-----------*/

   

.myStyleClass{

   

       backgroundColor: #000000;

   

       color:#0000FF;

   

}

/*-----------3、ID选择:组件ID设置相应的组件样式-----------*/

   

#can01ID{

   

       backgroundColor: #0000FF;

   

}

/*-----------4、派生选择:类里面的组件ID来定义样式-----------*/

   

s|VGroup#vGroupID     mx|ProgressBar{

   

       color:#FF0000;

   

}

/*-----------5、状态选择:通过状态定义样式,只适用于Button组件-----------*/

   

s|Button:down{

   

       fontSize:20;

   

       color:#FF0000;

   

}

   
   

2)mycss.css 文件

       /* CSS file */

@namespace s "library://ns.adobe.com/flex/spark";

@namespace mx "library://ns.adobe.com/flex/halo";

 

/*-----------1、全局选择:定制全局样式-----------*/

mx|Button s|Button{

       color: #FF0000;

}

 

s|Button{

       color: #FF00FF;

}

 

/*-----------2、全局选择器:可在组件的属性里面指定样式类,然后在css中声明相应的样式类-----------*/

.myStyleClass{

       backgroundColor: #000000;

       color:#0000FF;

}

 

/*-----------3、ID选择:组件ID设置相应的组件样式-----------*/

#can01ID{

       backgroundColor: #0000FF;

}

 

/*-----------4、派生选择:类里面的组件ID来定义样式-----------*/

s|VGroup#vGroupID mx|ProgressBar{

       color:#FF0000;

}

 

/*-----------5、状态选择:通过状态定义样式,只适用于Button组件-----------*/

s|Button:down{

       fontSize:20;

       color:#FF0000;

}

 

 

 参考文章:

http://wenku.baidu.com/view/4d25346e561252d380eb6ed4.html

http://wenku.baidu.com/view/bde2b74ffe4733687e21aaf8.html

http://blog.163.com/huangwei913@126/blog/static/23263222201251571153630/

 

      

 

 

 

 

转载于:https://www.cnblogs.com/tiandi/p/3197891.html

BootStrap4(四)Flex-弹性布局 布局的方式 表格布局>>>div+css实现的样式布局>>>>响应式布局>>>Flex弹性布局 阅读详情

相关推荐

YOLOv5实战:无人机巡检图片差异对比与违建标记(附完整代码)

本文详细介绍了如何利用YOLOv5目标检测技术实现无人机巡检图片差异对比与违建标记。通过图像对齐、目标检测、差异分析和可视化标记四个步骤,构建高效的违建识别系统,显著提升城市管理效率。文章包含完整代码实现和性能优化技巧,为计算机视觉在无人机巡检中的应用提供实用指南。

weixin_42535720的博客 280

【转】Flex 布局语法教程

网页布局(layout)是CSS的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖display属性 +position属性 +float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。...

weixin_33935777的博客 587

2025年数学建模美赛(MCM)C题阅读与思考

2025年数学建模美赛(MCM)C题阅读与思考

carefreekid123的博客 7339

FLEX4 设置全局样式 的方法

参考: ① Using the Flex 4 StyleManager: Getting Style Declarations December 6 As you may know, in Flex 4 you no longer call the StyleManager class as a singleton (StyleManager.getStyleManager...

MayMatrix 的博客 277

使用WSL2安装ubuntu系统并配置深度学习环境

wsl2安装ubuntu部署深度学习环境的方法

u013358093的博客 2701

OpenEuler内核编译及替换

一、内核源码下载 在gitee上下载OpenEuler内核源码 下载地址 选择需要的内核版本源码压缩包进行下载 二、内核编译 1.解压缩 将下载好的源码进行解压 tar xvf openeuler-kernel-4.19.90-2107.1.0.tar.gz 2.清理源代码树 解压后得到一个名为kernel的内核源码文件夹,进入后执行命令 make mrproper 清理过去内核编译产生的config,第一次编译时可不执行此命令 3.生成内核配置文件.config 先将将系统原配置文件拷贝过来,原

m0_56602092的博客 2万+

十五、flex弹性元素的样式

测试:把父类ul 的width设置小点,会发现里面的元素,会自动缩减,以适应父类边框变小的情况。3. 弹性元素的属性:flex-shrink。4. 弹性元素的属性:flex-basis。5. flex 统一设置这3个属性(常用)三、弹性元素的属性:flex-shrink。2. 弹性元素的属性:flex-grow。四、弹性元素的属性:flex-basis。五、flex 统一设置这3个属性(常用)二、弹性元素的属性:flex-grow。

gaoya7305的博客 1399

IDEA 导入 jbolt项目(实验室非公开项目)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录准备一、准备数据库二、IDEA导入jbolt项目 准备 在实验室群文件中下载jbolt.zip和mysql.sql两个文件 将其解压到自己的目录下 一、准备数据库 打开Navicat新建一个jbolt数据库(字符集为utf8) 导入mysql.sql文件 数据库导入完毕 二、IDEA导入jbolt项目 点击打开一个项目 选择jbolt文件夹 以Maven形式打开 打开pom.xml 在里面添加jetty-server依赖

weixin_44094842的博客 973

flex布局最常用的几种样式

总结几点我在做项目的时候记不清的样式啊...... 首先,大家得知道Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。 注意1:父元素设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。 我们常用的布局方式无非按水平方向排和垂直方向排,那么告诉这个盒子:排列方向(默认...

Alisane的博客 5829

功能安全实战系列12-英飞凌TC3xx锁步核及其自检开发

本文介绍了英飞凌Tricore系列芯片的锁步核(Lockstep Core)功能及其故障注入自检机制。锁步核通过主核和检查核同步执行指令,并比较输出结果来检测硬件故障。文章详细阐述了锁步核的工作原理、使能配置方法以及故障注入自检的实现过程。故障注入测试通过专用寄存器LCLTEST触发,系统会定期自动测试比较器节点,验证锁步核的故障检测能力。当检测到异常时,会触发SMU模块的警报机制。该技术为汽车电子系统提供了重要的功能安全保障。

initiallizer的博客 920

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

2079

flex 平铺布局_flex 4 布局样式

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

weixin_39929635的博客 252

备战2025数学建模国赛(算法29):博弈论在数学建模竞赛中的应用

博弈论为数学建模竞赛提供了强大的分析工具,尤其适用于涉及多方互动决策的问题。本文介绍了博弈论的核心模型、算法实现及竞赛应用案例,并提供了完整的Python代码实现。扩展阅读方向不完全信息博弈与贝叶斯均衡合作博弈与联盟形成机制设计与拍卖理论随机博弈与马尔可夫决策过程博弈论与机器学习的结合。

YOLO 442

EXTJS4 设置label 样式

#label2{font-size: 12px; color: #868600;background-color:#808000} .classDiv1{font-size: 12px; color: #808000; } .classDiv2{font-size: 12px; color: #EEE000; }   panel11

兰丝龙 专栏 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java使用css写页面样式_Java与Flex学习笔记----用CSS控制页面样式

以前对于Flex网页布局还不是很明白,基本上没有什么修饰。但是做完了一个仿“115网盘”的页面后,对页面控制有了一个基本的了解,现总结一下。本人一开始接触的就是Flex4,据说Flex3的css布局很脊椎,也不知道是不是这样。但是Flex4的网页布局很牛X,再配上各种事件,可以实现需要写很多JavaScript/Ajax代码才能实现的效果。好了,言归正传。在Flex4中使用css控制样式,既可以直...

weixin_35599852的博客 204

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

公司: Adobe 要求 必备知识 熟悉 Adobe Flex。 用户级别 中级 所需产品 Flex(下载试用) Flash Builder(下载试用) 示例文件(范例) 在本指南中,我将介绍如何将一个实际应用程序从 Flex 3 迁移至 Flex 4。文中提供的示例涵盖了 Flex 应用程序开发的所有重要领域,包括 CSS、Spark 组件、自定义外观、嵌入

Stoneson 970

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

将应用程序从Flex 3迁移至Flex 4(转载)

原文地址:http://www.cnblogs.com/chinazhousheng/archive/2010/11/01/1866375.html 在本指南中,我将介绍如何将一个实际应用程序从 Flex 3 迁移至 Flex

mine_1的专栏 830

Flex样式、图片以及组件

[size=large]1、 指定组件的相对高度可以使用percentWidth和percentHeight。 ^_^ ^_^ 记得以往我曾非常傻B地使用this.width*0.8这样的方式 2、 MyDashBoard例子启示录 往TitleWindow上添加最大化、最小化按钮图标可以采用样式的方式来实现,而非一定得是直接嵌入图片的方式。 参考方式: Pod...

JAVAZHICHIZHE的专栏 246

flex3和flex4之间的区别

flex4 beta发布了,它是自flex3以来的重大改革。flex4 beta 提供了一种新的组件和皮肤的架构。作为一个flex3的开发者,当你用flex4 beta编译你的flex3应用时你应该不会遇到太大的挑战,因为flex4 beta的一个目标就是保持与flex3的兼容。 在这篇文章里我会提供关于flex4 beta主体带的一个大概的浏览,介绍一下架构上的区别,以及在组件,布局...

A5656665656556的博客 222

Bootstrap4 学习笔记2

这一篇记录通用工具类。 记录 Borders: // 设置边框 <span class="border"></span> <span class="border-top"></span> <span class="border-right"></span> <span class="border-bottom"></span> <span class="border-left"></span&g

极客神殿 452

CSS flex 一行 4 列布局遇到的问题

开始……前情提要:列表内容是 1 行 4 列的布局方式。1. 希望效果(下图所示)然后我就用了 flex 布局display: flex justify-content: space-between复制代码2. 遇到的问题及原因因为,列表内容根据 数据 展示,所以 数据 当然不会正好是 4 的倍数。所以,就有了下图的 2 种布局效果:3. 解决方法在列表的末尾添加额外的两个 li :// html...

weixin_33868027的博客 1万+

Flex4.0与其Flex3.0相比新增了哪些功能

Flex4 新特性概述 Adobe Flex 最初是由 Macromedia 公司发布的,自 2005 年 10 月 Flex 被 Adobe 以 Flex SDK 2.0 发布之后,Flex SDK 已是一个开源的框架,用于构建富客户端应用程序。开发语言也由 Action Script 2.0 升级为 ActionScript3.0,,并需要 Flash Player 9 以上做为运行时环境。

aspnetandjava的专栏 2473
上一篇: 微信小程序(微信应用号)开发ide安装解决方法
下一篇: Hbase部署报错
badiu_30394251
博客等级 码龄11年 124粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值