Flex 3 cookbook翻译: 2.7 为菜单提供数据

2.7 为菜单提供数据

2.7.1 问题

data provider 生成菜单栏

2.7.2 解答

MXML MenuBar 控件的 dataProvider 属性指定一个 ArrayCollecton XMLListCollection 之类的 Collection 对象。

Recipe 2.7.3. Discussion

2.7.3 讨论

用数据生成一个 MenuBar 控件最简单的方式是用 MXML 在控件内部生成一个 XMLList 类型的实例。

 

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="horizontal">
    <mx:MenuBar labelField="@label">
        <mx:XMLList>
            <menuitem label="File">
                <menuitem label="New"/>
                <menuitem label="Open"/>
                <menuitem label="Close" enabled="false"/>
            </menuitem>
            <menuitem label="Edit"/>
            <menuitem label="Source"/>
            <menuitem label="View">
                <menuitem label="50%"
                    type="radio" groupName="one"/>
                <menuitem label="100%"
                    type="radio" groupName="one"
                    selected="true"/>
                <menuitem label="150%"
                    type="radio" groupName="one"/>
            </menuitem>
        </mx:XMLList>
    </mx:MenuBar>
</mx:Application>
 

因为 dataProvider 属性是 MenuBar 控件的默认属性, XMLList 对象可以被指派作为 <mx:MenuBar> 标签的直接子对象。 XMLList 中的顶级节点相当于 MenuBar 上的按钮。这些节点可以取任何名字——比如,不用 menuitem 也能作为子节点。不过,节点的属性有特别的意思,并影响显示的效果和菜单交互。这些属性列表如下:

enabled

指定用户时候能选择这个菜单项。

groupName

当类型是 radio 时适用。具有相同 groupName 的菜单项作为一组 radio

icon

指定一个图片资源的类标识符。

label

指定菜单项显示的内容。注意当 dataProvider E4X 格式,就像前面的例子, MenuBar labelField 属性必须明确指定,即使在 XMLList 里有 label 属性。

toggled

指定 check radio 类型的菜单项是否是选中状态。

type

指定菜单的类型(三种选项): check, radio, separator 。其中 separator 是默认的,也就是不需要指定。

 

你可能感兴趣的:(Flex,Adobe)