Apr 16
接下来的例子演示了如何在ArrayCollection中,创建一个可视化的游标(cursor)用来查找一个特别的项。 例子很简单,注意区分大小写。
让我们先来看一下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"
- creationComplete="init();">
- <mx:Array id="arr">
- <mx:String>One</mx:String>
- <mx:String>Two</mx:String>
- <mx:String>Three</mx:String>
- <mx:String>Four</mx:String>
- <mx:String>Five</mx:String>
- </mx:Array>
- <mx:ArrayCollection id="arrColl" source="{arr}" />
- <mx:Script>
- <![CDATA[
- import mx.collections.IViewCursor;
- import mx.collections.Sort;
- import mx.collections.SortField;
- [Embed("assets/accept.png")]
- public var acceptIcon:Class;
- [Embed("assets/exclamation.png")]
- public var exclamationIcon:Class;
- private var cursor:IViewCursor;
- private function init():void {
- var sortField:SortField = new SortField(null, true);
- var sort:Sort = new Sort();
- sort.fields = [sortField];
- arrColl.sort = sort;
- arrColl.refresh();
- cursor = arrColl.createCursor();
- }
- private function button_click(evt:MouseEvent):void {
- var found:Boolean = cursor.findAny(textInput.text);
- if (found) {
- img.source = acceptIcon;
- list.selectedItem = cursor.current;
- } else {
- img.source = exclamationIcon;
- list.selectedItem = null;
- }
- }
- ]]>
- </mx:Script>
- <mx:ApplicationControlBar dock="true">
- <mx:Canvas>
- <mx:TextInput id="textInput" />
- <mx:Image id="img" right="3" verticalCenter="0" />
- </mx:Canvas>
- <mx:Button id="button"
- label="Find"
- click="button_click(event);" />
- </mx:ApplicationControlBar>
- <mx:List id="list"
- dataProvider="{arrColl}"
- width="100"
- rowCount="{arrColl.length}" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
