Flex中如何利用dataDescriptor属性和isToggled()函数判断PopUpButton的下拉选项是否选中的例子

By Minidxer | March 31, 2009

接下来的例子演示了Flex中如何利用dataDescriptor属性和isToggled()函数,判断PopUpButton的下拉选项是否选中。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="top"
  5.         backgroundColor="white">
  6.  
  7.     <mx:Style>
  8.         PopUpButton {
  9.             popUpStyleName: MyCustomPopUpStyleName;
  10.         }
  11.  
  12.         .MyCustomPopUpStyleName {
  13.             fontWeight: normal;
  14.             textAlign: left;
  15.         }
  16.  
  17.         .redModal {
  18.             modalTransparencyColor: red;
  19.             modalTransparency: 0.8;
  20.         }
  21.  
  22.         .greenModal {
  23.             modalTransparencyColor: haloGreen;
  24.             modalTransparency: 0.8;
  25.         }
  26.     </mx:Style>
  27.  
  28.     <mx:Script>
  29.         <![CDATA[
  30.             import mx.events.MenuEvent;
  31.             import mx.controls.Menu;
  32.             import mx.controls.Alert;
  33.  
  34.             private var menu:Menu;
  35.             private function init():void {
  36.                 menu = new Menu();
  37.                 menu.variableRowHeight = true;
  38.                 menu.dataProvider = arr;
  39.                 menu.addEventListener(MenuEvent.CHANGE, menu_change);
  40.                 popUpButton.popUp = menu;
  41.             }
  42.  
  43.             private function menu_change(evt:MenuEvent):void {
  44.                 switch (menu.dataDescriptor.getType(evt.item)) {
  45.                     case "check":
  46.                         if (menu.dataDescriptor.isToggled(evt.item)) {
  47.                             application.styleName = "greenModal";
  48.                             Alert.show("\"" + evt.item.label + "\" was checked");
  49.                         } else {
  50.                             application.styleName = "redModal";
  51.                             Alert.show("\"" + evt.item.label + "\" was not checked");
  52.                         }
  53.                         break;
  54.                 }
  55.             }
  56.         ]]>
  57.     </mx:Script>
  58.  
  59.     <mx:Array id="arr">
  60.         <mx:Object label="Option 1"
  61.                 type="check"
  62.                 toggled="true" />
  63.         <mx:Object label="Option 2"
  64.                 type="check"
  65.                 toggled="true" />
  66.     </mx:Array>
  67.  
  68.     <mx:PopUpButton id="popUpButton"
  69.             label="Click to open..."
  70.             openAlways="true"
  71.             initialize="init();" />
  72.  
  73. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: PopUpButton | No Comments » | 590 views Tags: , , , ,

Search Posts