Flex中如何通过监听open和close事件监测PopUpButton下拉菜单打开/关闭状态的例子
By Minidxer | April 8, 2009
接下来的例子演示了Flex中如何通过监听open和close事件,监测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="middle"
- backgroundColor="white">
- <mx:Style>
- PopUpButton {
- popUpStyleName: myCustomPopUpStyleName;
- }
- .myCustomPopUpStyleName {
- fontWeight: normal;
- textAlign: left;
- }
- </mx:Style>
- <mx:Script>
- <![CDATA[
- import mx.events.ListEvent;
- import mx.controls.Menu;
- import mx.controls.Alert;
- import mx.events.DropdownEvent;
- import mx.utils.ObjectUtil;
- [Bindable]
- private var menu:Menu;
- private function init():void {
- menu = new Menu();
- menu.dataProvider = arr;
- }
- private function popUpButton_open(evt:DropdownEvent):void {
- arrColl.addItem(evt);
- }
- private function popUpButton_close(evt:DropdownEvent):void {
- arrColl.addItem(evt);
- }
- private function dataGrid_itemClick(evt:ListEvent):void {
- var obj:DropdownEvent = evt.currentTarget.selectedItem;
- var str:String = "(empty string)";
- if (obj.triggerEvent) {
- str = obj.triggerEvent.toString();
- }
- Alert.show(str, "triggerEvent:");
- }
- ]]>
- </mx:Script>
- <mx:Array id="arr">
- <mx:Object label="Button" />
- <mx:Object label="ButtonBar" />
- <mx:Object label="ColorPicker" />
- <mx:Object label="ComboBox" />
- </mx:Array>
- <mx:ArrayCollection id="arrColl" />
- <mx:ApplicationControlBar dock="true">
- <mx:PopUpButton id="popUpButton"
- label="Select a control..."
- popUp="{menu}"
- initialize="init();"
- open="popUpButton_open(event);"
- close="popUpButton_close(event);" />
- </mx:ApplicationControlBar>
- <mx:DataGrid id="dataGrid"
- dataProvider="{arrColl}"
- variableRowHeight="true"
- width="100%"
- height="100%"
- itemClick="dataGrid_itemClick(event);">
- <mx:columns>
- <mx:DataGridColumn dataField="type"
- width="100" />
- <mx:DataGridColumn dataField="triggerEvent"
- itemRenderer="mx.controls.Label"
- wordWrap="true" />
- </mx:columns>
- </mx:DataGrid>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
PopUpButton |
No Comments » |
Tags: CLOSE, open., PopUpButton