这个示例演示如何使用HSlider来控制PopUpButton的圆角程度。
来看演示:http://www.36ria.com/flex/HSlider.swf
来看其代码:
- <?xml version="1.0" encoding="utf-8"?>
- <!-- http://blog.flexexamples.com/2008/01/31/setting-the-corner-radius-on-a-flex-popupbutton-control/ -->
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="top"
- backgroundColor="white">
- <mx:Style>
- Application{
- fontSize:12px;
- }
- PopUpButton {
- popUpStyleName: myCustomPopUpStyleName;
- }
- .myCustomPopUpStyleName {
- fontWeight: normal;
- textAlign: left;
- leftIconGap: 0;
- }
- </mx:Style>
- <mx:Script>
- <![CDATA[
- import mx.controls.Menu;
- private function init():void {
- var menu:Menu = new Menu();
- menu.dataProvider = arr;
- popUpButton.popUp = menu;
- }
- private function resizePopUp():void {
- popUpButton.popUp.width = popUpButton.width;
- }
- ]]>
- </mx:Script>
- <mx:Array id="arr">
- <mx:Object label="Alert" />
- <mx:Object label="Button" />
- <mx:Object label="ButtonBar" />
- <mx:Object type="separator" />
- <mx:Object label="CheckBox" />
- <mx:Object label="ColorPicker" />
- <mx:Object label="ComboBox" />
- </mx:Array>
- <mx:PopUpButton id="popUpButton"
- label="请选择一个元素"
- cornerRadius="{slider.value}"
- arrowButtonWidth="{popUpButton.height}"
- openAlways="true"
- initialize="init();"
- creationComplete="resizePopUp();" />
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain">
- <mx:FormItem label="这是个滑动条:">
- <mx:HSlider id="slider"
- minimum="0"
- maximum="{popUpButton.height / 2}"
- value="0"
- liveDragging="true"
- snapInterval="1"
- tickInterval="1" />
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- </mx:Application>
说明下其关键参数
- <mx:PopUpButton id="popUpButton"
- label="请选择一个元素"
- cornerRadius="{slider.value}"
- arrowButtonWidth="{popUpButton.height}"
- openAlways="true"
- initialize="init();"
- creationComplete="resizePopUp();" />
cornerRadius=”{slider.value}”这个属性的值与滑动条的值相绑定。
虽然这个功能实际意义不大,但举一反三的话,flex组件与组件之间的调用方式便可知一二了

