Flex中如何利用dataDescriptor属性和isToggled()函数判断PopUpButton的下拉选项是否选中的例子
By Minidxer | March 31, 2009
接下来的例子演示了Flex中如何利用dataDescriptor属性和isToggled()函数,判断PopUpButton的下拉选项是否选中。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="top"
- backgroundColor="white">
- <mx:Style>
- PopUpButton {
- popUpStyleName: MyCustomPopUpStyleName;
- }
- .MyCustomPopUpStyleName {
- fontWeight: normal;
- textAlign: left;
- }
- .redModal {
- modalTransparencyColor: red;
- modalTransparency: 0.8;
- }
- .greenModal {
- modalTransparencyColor: haloGreen;
- modalTransparency: 0.8;
- }
- </mx:Style>
- <mx:Script>
- <![CDATA[
- import mx.events.MenuEvent;
- import mx.controls.Menu;
- import mx.controls.Alert;
- private var menu:Menu;
- private function init():void {
- menu = new Menu();
- menu.variableRowHeight = true;
- menu.dataProvider = arr;
- menu.addEventListener(MenuEvent.CHANGE, menu_change);
- popUpButton.popUp = menu;
- }
- private function menu_change(evt:MenuEvent):void {
- switch (menu.dataDescriptor.getType(evt.item)) {
- case "check":
- if (menu.dataDescriptor.isToggled(evt.item)) {
- application.styleName = "greenModal";
- Alert.show("\"" + evt.item.label + "\" was checked");
- } else {
- application.styleName = "redModal";
- Alert.show("\"" + evt.item.label + "\" was not checked");
- }
- break;
- }
- }
- ]]>
- </mx:Script>
- <mx:Array id="arr">
- <mx:Object label="Option 1"
- type="check"
- toggled="true" />
- <mx:Object label="Option 2"
- type="check"
- toggled="true" />
- </mx:Array>
- <mx:PopUpButton id="popUpButton"
- label="Click to open..."
- openAlways="true"
- initialize="init();" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
PopUpButton |
No Comments » |
590 views
Tags: dataDescriptor, getType(), isToggled(), Menu, PopUpButton