`

Flex button和buttonBar的操作

 
阅读更多
Flex button 可以说是flex UI中最常用的了。
下面我举一个例子
-----------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Grid>
        <mx:GridRow>
            <mx:GridItem>
                <mx:Button label="A" />
            </mx:GridItem>
            <mx:GridItem>
                <mx:Button label="B" />
            </mx:GridItem>
            <mx:GridItem>
                <mx:Button label="C" />
            </mx:GridItem>
        </mx:GridRow>
        <mx:GridRow>
            <mx:GridItem colSpan="3">
                <mx:Button label="STOP" width="100%" />
            </mx:GridItem>
        </mx:GridRow>
    </mx:Grid>
</mx:Application>
-------------------------------------------------------------------------
上面的可以说是button的基本应用了,没有点击事件等。label是显示在button上的文字。
如果给button添加icon呢。下面提供2种方式
-------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    
    <mx:Script>
        
        [Bindable]
        [Embed(source="assets/aim2.png")]
        private var Icon:Class;
        
    </mx:Script>
    
    <mx:Button label="[Embed(source='assets/aim2.png')]" icon="{Icon}" />
    <mx:Button label="@Embed('assets/aim2.png')" icon="@Embed('assets/aim2.png')" />
    
</mx:Application>
-------------------------------------------------------------------------
点击事件的追加
-------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        
        import mx.controls.Alert;
        public function handleEvent():void
        {
            mx.controls.Alert.show("AAA");
        
        }
      
    </mx:Script>
    <mx:Button label="Click on me" click="handleEvent()" />

</mx:Application>
-------------------------------------------------------------------------
修改button的文字大小
-------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    minWidth="1024" minHeight="768">
    <mx:Button label="Hello World!" fontSize="40" />
</mx:Application>
-------------------------------------------------------------------------
修改button的样式
-------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Style>
    @namespace mx "http://www.adobe.com/2006/mxml";
        mx|Button{
            font-family:Arial;
            font-size: 16px;
            color:#999999;
        }
        .customButtonStyle{
            font-family:Verdana;
            font-size: 12px;
            color:#000000;
        }
    </mx:Style>
    <mx:Button label="regular button"/>
    <mx:Button label="customButtonStyle button" styleName="customButtonStyle" y="35"/>
</mx:Application>
-------------------------------------------------------------------------
其他Flex中还有比较炫的操作
-------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    
    <mx:Style>
        @namespace mx "http://www.adobe.com/2006/mxml";
        mx|Button
        {
            mouseDownEffect: myFadeOut;
            mouseUpEffect: myFadeIn;
        }
        
    </mx:Style>
    
    <mx:Fade id="myFadeOut" alphaFrom="1" alphaTo="0" />
    <mx:Fade id="myFadeIn" alphaFrom="0" alphaTo="1" />
    
    <mx:Button label="Button 1" />
    
</mx:Application>
-------------------------------------------------------------------------


ButtonBar 其实是一个ButtonGroup的升级版
-------------------------------------------------------------------------
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:ButtonBar horizontalGap="5">
        <mx:dataProvider>
            <mx:String>A</mx:String>
            <mx:String>B</mx:String>
            <mx:String>C</mx:String>
            <mx:String>D</mx:String>
        </mx:dataProvider>
    </mx:ButtonBar>
</mx:Application>
-------------------------------------------------------------------------
下面看看事件的怎么监听的。
-------------------------------------------------------------------------
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:Script>
        
        import mx.events.ItemClickEvent;
        private function clickHandler(event:ItemClickEvent):void {
            myTA.text= String(event.index) + "\n" + "Selected button label: " + event.label;
        }
      
    </mx:Script>
    <mx:TextArea id="myTA" width="200" height="100"/>
    <mx:ButtonBar horizontalGap="5" itemClick="clickHandler(event);">
        <mx:dataProvider>
            <mx:String>Flash</mx:String>
            <mx:String>Director</mx:String>
            <mx:String>Dreamweaver</mx:String>
            <mx:String>ColdFusion</mx:String>
        </mx:dataProvider>
    </mx:ButtonBar>
</mx:Application>
-------------------------------------------------------------------------
有的时候ButtonBar是非常有用的。看看下面动态追加Button是怎么做的
-------------------------------------------------------------------------
<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/mx">
    <s:layout>
        <s:VerticalLayout />
    </s:layout>
    <fx:Script>
         
        // Add data item, and button, to the ButtonBar.
        private function addFlexToDP():void {
            myBB.dataProvider.addItem("Flex");
            addFlex.enabled=false;
            removeFlex.enabled=true;
        }
        // Remove data item, and button, from the ButtonBar.
        private function removeFlexToDP():void {
            myBB.dataProvider.removeItemAt(4);
            addFlex.enabled=true;
            removeFlex.enabled=false;
        }
        
    </fx:Script>
    <s:ButtonBar id="myBB">
        <mx:ArrayCollection>
            <fx:String>Flash</fx:String>
            <fx:String>Director</fx:String>
            <fx:String>Dreamweaver</fx:String>
            <fx:String>ColdFusion</fx:String>
        </mx:ArrayCollection>
    </s:ButtonBar>
    <s:Button id="addFlex" label="Add Flex" click="addFlexToDP();" />
    <s:Button id="removeFlex" label="Remove Flex" enabled="false"
              click="removeFlexToDP();" />
</s:Application>
-------------------------------------------------------------------------

好了,下面我们修改ButtonBar的样式
-------------------------------------------------------------------------
<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/mx">
    <s:layout>
        <s:VerticalLayout paddingLeft="20" paddingTop="20"/>
    </s:layout>
    <fx:Style>
        @namespace s "library://ns.adobe.com/flex/spark";
        s|ButtonBar s|ButtonBarButton:upAndSelected,
        s|ButtonBar s|ButtonBarButton:overAndSelected,
        s|ButtonBar s|ButtonBarButton:downAndSelected,
        s|ButtonBar s|ButtonBarButton:disabledAndSelected {
            chromeColor: #663366;
            color: #9999CC;
        }
        s|ButtonBar {
            chromeColor: #9999CC;
            color: #663366;
        }
    </fx:Style>
    <s:ButtonBar requireSelection="true" width="320">
        <mx:ArrayCollection>
            <fx:String>Flash</fx:String>
            <fx:String>Director</fx:String>
            <fx:String>Dreamweaver</fx:String>
            <fx:String>ColdFusion</fx:String>
        </mx:ArrayCollection>
    </s:ButtonBar>
</s:Application>
-------------------------------------------------------------------------

好了就到这吧。下一次我们将讲解CheckBox和Radio

 

分享到:
评论

相关推荐

    Flex常规控件和组件

    在 Flex 中,控件和组件是构建用户界面的基本元素,它们提供了多种功能和样式,以满足不同需求。下面将详细介绍这些常规的 Flex 控件和组件: 1. Button:Button 是最基本的动作触发器,用于响应用户的单击事件。它...

    Flex4 Spark皮肤

    在这段代码中,首先定义了按钮的四种状态(`up`、`over`、`down` 和 `disabled`),然后通过`[HostComponent("spark.components.Button")]`元数据指定该皮肤适用于 `Button` 组件。接下来,定义了按钮的主要视觉元素...

    Flex4皮肤资料

    这段代码展示了如何在Flex应用中引用自定义的Button皮肤,并将其应用到实际的Button组件上。 总之,通过理解SparkSkin和Skin的工作原理,以及掌握自定义Skin的方法,开发者能够有效地提升Flex应用的UI设计水平,使...

    flex + java 初学者 笔记 学习资料

    Flex是Adobe开发的一种用于构建富互联网应用程序(RIA)的框架,主要使用ActionScript语言和MXML标记语言。本文档是针对Flex和Java初学者的学习笔记,涵盖了Flex中的基础组件、文本处理、样式设计、行为对象以及动画...

    flex 4.6Css

    Button | ButtonBar | TabBar | ToggleButton | CheckBox | RadioButton | Scroller | HScrollBar VScrollBar | HSlider | VSlider | DropDownList | TextArea | TextInput | ComboBox | List NumericStepper | ...

    flex控件讲解

    - 它主要用于Adobe Flex应用程序中,能够提供更为复杂和灵活的数据展示方式。 - **特点**: - 支持多列数据展示。 - 提供了更多的自定义选项,如排序、分组等功能。 - **应用场景**: - 适用于需要展示大量数据...

    Flex中TabBar自动换行的实现

    首先,我们需要创建一个自定义布局类,扩展Flex的`mx.layout.HorizontalLayout`,并重写其中的关键方法,如`measure()`和`updateDisplayList()`,来实现自动换行的功能。这两个方法分别负责计算组件的尺寸和实际...

    flex4.5学习笔记

    - **数据模型**: 设计和实现数据结构,以便更高效地管理和操作数据。 - **数据模型的作用**: 为应用提供统一的数据访问接口,简化数据处理流程。 #### 四、数据处理和操作 **知识点8:扩展事件** - **自定义事件**...

    《Flex 3 组件实例与应用(2009版)》(PDF)

    本书由Dason精心整理于2009年2月,全面覆盖了Flex 3中的各种控件、容器、数据可视化组件以及效果、视图状态和过渡等内容,旨在帮助开发者深入了解并掌握Flex 3的应用技巧。 ### 通用控件(General controls) ####...

    Flex UI组件使用全集

    - **NumericStepper**: 用于数字输入并提供加减操作的组件。 - **ProgressBar**: 进度条组件,常用于显示任务完成状态。 - **Spacer**: 用于布局中的空白区域。 - **TabBar**: 套装式标签栏组件。 - **TileList**: ...

    Flex 3 组件实例与应用(2009版)

    这本书由作者Dason编写,内容覆盖了Flex 3中的多种组件及其用法,并通过实际案例帮助读者更好地理解和掌握这些组件的应用场景和技术细节。 #### 二、基础知识 在深入了解各个组件之前,我们需要先了解Flex 3的一些...

Global site tag (gtag.js) - Google Analytics