`
nianshi
  • 浏览: 420667 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex 3快速入门(8): 构建简单的用户界面 设置组件的样式

    博客分类:
  • Flex
阅读更多

 

设置组件的样式


样式对于定义 Adobe  Flex 应用程序的外观和感觉 (外观) 很有用。您可以使用它们来更改单一组件的外观, 或在所有组件上应用它们。

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

  • 使用本地样式定义
  • 使用外部样式表
  • 使用线上样式
  • 使用 setStyle() 方法


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

主题是定义 Flex 应用程序的外观和感觉的一组样式。主题可以将一些事项定义得像应用程序的配色方案或常见字体一样简单, 或者它可以成为应用程序所使用的所有组件的完全重新设置的外观。主题通常采取 SWC 文件的形式。但是, 主题也可以是 CSS 文件和嵌入式图形资源, 如来自 SWF 文件的符号。

信息图标  有关主题中支持的样式属性的详细信息, 请参阅 Flex 2 开发人员指南*中的“关于支持的样式”。

信息图标  若要确定特定可视组件所支持的样式, 请参阅 Adobe Flex 2 语言参考中该组件的样式部分。

使用本地样式定义可以使用 <mx:Style> 标签在 MXML 文件中创建本地样式定义。 此标签包含符合 CSS 2.0 语法的样式表定义。 这些定义应用到当前文档和当前文档的所有子级。

下面的示例创建两个类选择器, .solidBorder 和 .solidBorderPaddedVertically , 并通过使用它们的 styleName 属性来使用它们设置两个 VBox 容器的样式。 如此示例所示, 使用类选择器使您能够为相同组件的多个实例提供不同的样式。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    width="150" height="140"
     viewSourceURL="src/StylesStyleTag/index.html"
>
    <mx:Style>
        .solidBorder { border-style: solid; }
       
        .solidBorderPaddedVertically
        {
            padding-top: 12;
            padding-bottom: 12;
            border-style: solid;        }
    </mx:Style>
    <mx:VBox styleName="solidBorder">
        <mx:Button label="Submit"/>
    </mx:VBox>
    <mx:VBox
        styleName="solidBorderPaddedVertically"
    >
        <mx:Button label="Submit"/>
    </mx:VBox>
</mx:Application>

提示: 如果您希望某个特定组件的所有实例共享相同的样式, 则可以使用 CSS 类型选择器。例如, 通过使用下列类型选择器, 应用程序中的所有 VBox 实例将有一个实心边框。

VBox { border-style: solid; }

 


结果

 

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码”。


使用外部样式表

Flex 支持外部 CSS 样式表。若要将样式表应用到当前文档及其子文档, 请使用 <mx:Style> 标签的 source 属性。

注意: 您应尝试限制在应用程序中使用的样式表的数量, 并在应用程序中仅设置处于顶层文档的样式表 (顶层文档是包含 <mx:Application> 标签的文档)。如果您在子文档中设置一个样式表, 则会发生异常结果。

下面的示例在称为 external.css 的外部 CSS 文件中定义两个 CSS 类选择器。您可以通过在 <mx:Style> 标签的来源属性中指定其路径和文件名, 在 Flex 应用程序中使用外部 CSS 文件。

示例:


外部 CSS 文件
/* An external CSS file */
.solidBorder
{
    borderStyle: "solid";
}

.solidBorderPaddedVertically
{
    borderStyle: "solid";
    paddingTop: 12px;
    paddingBottom: 12px;
}

 

MXML 文件

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    width="150" height="140"
    viewSourceURL="src/StylesExternal/index.html"

>
    <mx:Style source="styles/external.css" />

    <mx:VBox styleName="solidBorder">

        <mx:Button label="Submit"/>
    </mx:VBox>
   
    <mx:VBox styleName="solidBorderPaddedVertically">
        <mx:Button label="Submit"/>
    </mx:VBox>

</mx:Application>

 

结果

 

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码”。


使用线上样式

可以将样式属性设置为 MXML 标签中该组件的属性。除了通过使用 setStyle() 标签定义的运行时样式更改之外, 线上样式定义优先于任何其他样式定义。例如, 您可以通过使用 <mx:VBox> 标签的 paddingTop 和 paddingBottom 属性在 Box 容器的边框与其内容之间设置填充。 类似地, 您可以使用 borderStyle 属性来定义组件的边框的可视外观。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    width="150" height="140"
    viewSourceURL="src/StylesTagAttributes/index.html"

>
    <mx:VBox id="myVBox1" borderStyle="solid">
        <mx:Button label="Submit"/>

    </mx:VBox>
    <mx:VBox
        id="myVBox2" borderStyle="solid"
        paddingTop="12" paddingBottom="12"
    >
        <mx:Button label="Submit"/>

    </mx:VBox>
</mx:Application>

 

结果

 

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码”。


使用 setStyle() 方法

使用 setStyle() 方法操纵 ActionScript 中的控件实例的样式属性。 使用此方法应用样式与使用样式表应用样式相比, 需要在客户端上有更大数量的处理功率, 但对如何应用样式提供更多粒度控制。

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

提示: 第一次实例化对象和设置样式时, 应尝试应用样式表而不是使用 setStyle() 方法, 因为据估算, 此方法很昂贵。 仅当要在运行时过程中更改对象的样式时, 才应使用此方法。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    width="150" height="140"
     viewSourceURL="src/StylesSetStyle/index.html"
>
    <mx:Script>
        <![CDATA[
            private function initVBox():void
            {
                myVBox2.setStyle("paddingTop", 12);
                myVBox2.setStyle("paddingBottom", 12);
            }
        ]]>
    </mx:Script>
   
    <mx:VBox borderStyle="solid">
        <mx:Button label="Submit"/>

    </mx:VBox>
    <mx:VBox
        id="myVBox2" borderStyle="solid"
        paddingTop="12" paddingBottom="12"
        initialize="initVBox();"
    >
    <mx:Button label="Submit"/>
    </mx:VBox>
</mx:Application>

结果

 

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码”。

分享到:
评论

相关推荐

    Flex4中文快速入门

    3. **Spark组件模型**:Flex 4引入了全新的Spark组件架构,取代了MX组件。Spark组件更注重设计模式,提供了更好的性能和可定制性。学习如何使用Spark组件创建丰富的用户界面是核心内容之一。 4. **皮肤和样式**:...

    FLEX简单的入门快速总结

    Flex提供了一套丰富的预定义组件,如按钮、文本框、列表等,这些组件可以快速构建用户界面。通过设置组件属性、样式和事件监听器,你可以定制组件的行为和外观。 总之,Flex入门需要掌握数据绑定的概念,学会使用...

    flex快速入门“flex3_quickstart”

    本文旨在为初学者提供一个全面的Flex3快速入门指南,涵盖从基础编码到高级用户界面构建的关键知识点。 ### 一、使用MXML和ActionScript进行编码 #### MXML:用户界面布局的XML语言 MXML(Flex Markup Language)...

    Flex完全自学入门手册

    5. **Flex组件库**:Flex内建了一个丰富的组件库,包括按钮、文本框、列表、面板等常见UI元素,这些组件都预设了样式和行为,开发者可以通过简单的配置就能快速构建复杂的用户界面。 6. **数据绑定**:Flex支持双向...

    flex入门pdf格式

    4. **Flex组件库**:Flex包含了一套预构建的UI组件,如Button、Label、Form、List等,这些组件可以帮助开发者快速构建用户界面。每个组件都有自己的属性、样式和事件,可以根据需要自定义。 5. **数据绑定**:Flex...

    Flex 入门_2007.rar

    它允许开发者以声明式的方式定义用户界面,将布局、样式和组件的实例化结合在一起。 4. **Flex组件模型**:Flex提供了一套丰富的预定义组件库,如按钮、文本输入框、数据网格等,这些组件可以方便地组合成复杂的...

    MapGIS IGServer Flex快速入门手册

    ### MapGIS IGServer Flex 快速入门手册关键知识点解析 #### 一、MapGIS IGServer Flex 二次开发简介 MapGIS IGServer Flex 是一款由武汉中地数码科技有限公司开发的地理信息系统(GIS)服务平台,主要面向Web应用...

    Flex4入门必备资料

    MXML是一种声明式语言,常用于构建用户界面,而ActionScript则用于编写逻辑代码,两者结合使用可以实现强大的功能。 3. **Spark组件**:Flex4引入了全新的Spark组件模型,相比之前的MX组件,Spark组件提供了更高的...

    Flex3基础教程PPT(1-5)

    Flex Builder 3作为一个强大的集成开发环境(IDE),提供了图形化的设计视图,让开发者能够直观地拖放组件来构建用户界面,同时支持编写ActionScript 3代码,这是Flex应用程序的主要编程语言,与Flash CS3兼容。...

    Flex 的 Adobe AIR快速入门

    ### Flex的Adobe AIR快速入门知识点解析 #### 一、处理文件和数据 1. **构建目录搜索应用程序** - **异步读取文件**: 在构建目录搜索应用程序时,使用`getDirectoryListingAsync()`方法来异步获取目录列表,这样...

    FLEX4_Flex4教程 - FLEX4从入门到精通,挺不错的值得一看

    Flex4的出现极大地提升了开发者的创造力,使得应用程序不仅有丰富的用户界面,还具备了高效的性能。 Flex4教程通常会涵盖以下几个关键知识点: 1. **ActionScript 3.0**:Flex4的基础是ActionScript 3.0,这是一种...

    Flex入门学习资料(自己整理)

    通过定义皮肤类,可以创建独特的组件样式,实现界面的个性化设计。 2. 数据表现: 在Flex中,数据绑定是将视图组件与应用程序数据模型关联的重要机制。你可以将数据模型直接绑定到UI组件,当数据发生变化时,组件...

    flex+java入门

    Flex是一种基于Adobe Flash Player运行时的开源框架,主要用于构建具有丰富用户界面的Web应用程序。它提供了一个强大的组件库,使开发者能够创建交互性强、图形表现力丰富的应用程序。而Java,作为一种多平台的编程...

    Flex入门培训资料及PPT

    Flex是Adobe公司开发的一种用于构建富互联网应用(RIA, Rich Internet Applications)的开源框架,它主要基于ActionScript和MXML语言,提供了强大的图形用户界面设计和编程能力。本压缩包包含的“Flex入门培训资料及...

    【转帖】Flex 开发入门

    Flex 是一种用于构建富互联网应用程序(RIA, Rich Internet Applications)的开源框架,由Adobe公司开发,主要用于构建用户界面。它基于ActionScript编程语言和MXML标记语言,提供了一种高效、跨平台的方式来创建...

    FLEX3入门指南(Flex.3.A.Beginners.Guide).rar

    《FLEX3入门指南》是针对初学者的一本详尽教程,主要涵盖了Adobe Flex 3这一版本的相关技术。Flex是一个开放源代码的框架,用于构建富互联网应用程序(Rich Internet Applications,RIAs)。这本书旨在帮助读者从零...

    Flex入门介绍文档

    Flex入门详解:构建企业级富互联网应用的框架 Flex是一个专为开发企业级富互联网应用(RIA)设计的表示层解决方案。它不仅提供了一个应用程序框架,还包括编译工具和集成开发环境(IDE),使得开发者可以通过编写...

    flex 入门教程 电子书

    6. Flex组件:Flex提供了一系列预定义的组件,如按钮、文本框、列表、面板等,这些组件可以快速构建出功能丰富的用户界面。开发者可以通过定制组件的样式和行为,以满足特定的设计需求。 7. 数据绑定:Flex支持数据...

    Flex入门文档 -王一松

    - **UI控件介绍**:Flex提供了丰富的UI控件库,如按钮、文本框等,这些控件可以帮助开发者快速构建用户界面。这部分内容会详细介绍这些控件的基本用法及其属性设置。 #### 5. ActionScript 3 - **脚本语言基础**:...

    flex3语言参考手册

    4. **MXML**:MXML是Flex的标记语言,用于声明式地构建用户界面。掌握MXML的元素、属性和样式,以及如何在MXML中嵌入ActionScript代码。 5. **组件库**:Flex提供了一整套预定义的UI组件,如容器、按钮、文本框等。...

Global site tag (gtag.js) - Google Analytics