Flex中通过selectionDuration样式实现List控件中项目选中延迟效果的例子
By Minidxer | July 31, 2008
和前面的Flex中通过openDuration和closeDuration样式改变ComboBox控件打开/关闭下拉菜单时延迟效果的例子类似的,接下来的例子演示了Flex中通过selectionDuration样式,实现List控件中项目选中延迟效果。移动游标调整延迟时间的长短。
让我们先来看一下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:Array id="arr">
- <mx:Object label="One" />
- <mx:Object label="Two" />
- <mx:Object label="Three" />
- <mx:Object label="Four" />
- <mx:Object label="Five" />
- <mx:Object label="Six" />
- <mx:Object label="Seven" />
- <mx:Object label="Eight" />
- <mx:Object label="Nine" />
- <mx:Object label="Ten" />
- </mx:Array>
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain" indicatorGap="0">
- <mx:FormItem label="selectionDuration:">
- <mx:HSlider id="slider"
- minimum="0"
- maximum="2000"
- value="250"
- snapInterval="1"
- tickInterval="100"
- dataTipPrecision="0"
- liveDragging="true" />
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- <mx:List id="list"
- dataProvider="{arr}"
- selectionDuration="{slider.value}"
- width="200"
- selectionColor="red" />
- </mx:Application>
下面是实现同样功能的ActionScript版本:
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"
- initialize="init();">
- <mx:Script>
- <![CDATA[
- import mx.containers.ApplicationControlBar;
- import mx.containers.Form;
- import mx.containers.FormItem;
- import mx.controls.HSlider;
- import mx.controls.List;
- import mx.controls.sliderClasses.Slider;
- import mx.events.SliderEvent;
- private var arr:Array;
- private var slider:HSlider;
- private var list:List;
- private function init():void {
- arr = [];
- arr.push({label:"One"});
- arr.push({label:"Two"});
- arr.push({label:"Three"});
- arr.push({label:"Four"});
- arr.push({label:"Five"});
- arr.push({label:"Six"});
- arr.push({label:"Seven"});
- arr.push({label:"Eight"});
- arr.push({label:"Nine"});
- arr.push({label:"Ten"});
- slider = new HSlider();
- slider.minimum = 0;
- slider.maximum = 2000;
- slider.value = 250;
- slider.snapInterval = 1;
- slider.tickInterval = 100;
- slider.liveDragging = true;
- slider.setStyle("dataTipPrecision", 0);
- slider.addEventListener(SliderEvent.CHANGE, slider_change);
- var formItem:FormItem = new FormItem();
- formItem.label = "selectionDuration:";
- formItem.addChild(slider);
- var form:Form = new Form();
- form.styleName = "plain";
- form.setStyle("indicatorGap", 0);
- form.addChild(formItem);
- var appControlBar:ApplicationControlBar;
- appControlBar = new ApplicationControlBar();
- appControlBar.dock = true;
- appControlBar.addChild(form);
- Application.application.addChildAt(appControlBar, 0);
- list = new List();
- list.dataProvider = arr;
- list.width = 200;
- list.setStyle("selectionColor", "red");
- addChild(list);
- }
- private function slider_change(evt:SliderEvent):void {
- list.setStyle("selectionDuration", evt.value);
- }
- ]]>
- </mx:Script>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
No Comments » |
Tags: List, selectionDuration, 延迟效果