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弹性布局 阅读详情

相关推荐

别再手动连线了!用Tessent IJTAG的SIB和TDR,5分钟搞定复杂芯片的DFT网络分区

本文探讨了如何利用Tessent IJTAG的SIB(Segment Insertion Bit)和TDR(Test Data Register)技术,高效解决复杂芯片DFT网络分区问题。通过智能化的扫描链管理和声明式定义,显著降低连接复杂度,提升测试覆盖率和良率,适用于超大规模SoC设计。

weixin_29251131的博客 300

【转】Flex 布局语法教程

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

weixin_33935777的博客 587

如何把DeepSeek这个奈斯工具接入到Pycharm里

DeepSeek接入到Pycharm中,提高编程效率,以及帮助解决遇到的问题。

学无止境,何以言满 2623

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

Word多级标题出现黑块的解决思路(word 数字必须介于1-1638之间)

遇到多级目录出现黑块问题,看到一篇博客完美解决,在此记录。

AI_Optimization的博客 3715

Linux-ftrace-双nop机制的实现

linux-ftrace内核追踪-双nop机制的实现原理

qq_43707773的博客 1072

十五、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

小众但实用:Python爬取钉钉/企业微信消息,实现办公数据自动化采集(完整版)

钉钉/企业微信的办公数据自动化采集,属于「小众但极度实用」的Python技巧——它不像爬虫爬取电商/网页数据那样被广泛关注,但能直接解决职场人的「刚需痛点」,把每天1-2小时的手动数据整理工作,变成「一键自动化完成」。这套技巧的核心价值,不在于「技术有多高深」,而在于「能真正落地、能真正提升效率」—— 几行简单的Python代码,就能解放双手,让你从繁琐的重复工作中解脱出来,专注于更有价值的核心工作。更重要的是:所有的技术和代码,都是基于「合规合法」的前提,守住了技术的底线,也守住了职场的原则。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1931

flex布局最常用的几种样式

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

Alisane的博客 5829

FC7300 Clock介绍

FC7300的时钟架构包括一个高级时钟图和内部时钟需求。它有5个CMU,使用SIRC监控FIRC/SOSC/FOSC,并使用FIRC监控SIRC。此外,CMU4还使用FOSC监Slow Clock。

舊梦的博客 327

网络变更:APIC 节点替换

Fabric Name,Controller ID,TEP Address Pool 等信息必须相同;如果故障设备是 APIC1 还需要重新配置管理密码。此过程可能需要 10 分钟左右,在此期间目标 APIC 可能在 Available/Unavailable 状态翻滚。APIC 获取 TEP 地址后,进入 fully-fit。通过 CLI 以及配置的密码登录目标 APIC。

m0_54931486的博客 320

flex 平铺布局_flex 4 布局样式

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

weixin_39929635的博客 252

推荐系统(六)双塔模型

双塔模型是推荐场景中常用的粗排模型之一,本节主要介绍几种典型的双塔模型及其变型,如SENet 双塔模型,并联双塔,蒸馏学习,对偶增强双塔,阿里 COLD。

Jin_Kwok的博客 5143

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万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

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

weixin_35599852的博客 204

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

Stoneson 970

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

将应用程序从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、付费专栏及课程。

余额充值