这次我来说明一下List组件的使用,主要是当multipleSelection的属性设为"true"的时候的技巧。 1.选择了多项条目后数据的读取,关键代码如下: function getSelectedItems() { var selectItems:Array = state.selectedItems; var iCount:Number = selectItems.length; var xml:XML = new XML(); var rootElement:XMLNode = xml.createElement( "root" ); for( var i:Number = 0 ; i < iCount ; i++ ) { var contentElement:XMLNode = xml.createElement( "state" ); var textElement:XMLNode = xml.createTextNode( selectItems .data ); contentElement.appendChild( textElement ); rootElement.appendChild( contentElement ); } xml.appendChild( rootElement ); mx.controls.Alert.show( xml.toString() , 'Message'); } state是List组件的id,在List组件里如果允许多选,那么被选定的那些条目会被存放在组件的selectedItems属性里,该属性是Object一个数组,每个元素的data属性对应该条目的值,后面的代码就是为了把结果显示出来而已,不解释了。 2.根据后台发来的数据决定选项是否是选定状态,关键代码如下: function initApp() { var selectedItems:Array = new Array(); var iCount:Number = state.length; for( var i:Number = 0 ; i < iCount ; i++ ) { if( state.getItemAt( i ).data == "AL" || state.getItemAt( i ).data == "AK" ) { selectedItems.push( i ); } } state.selectedIndices = selectedItems; } lenth属性保存了List组件里数据条目的总数,循环使用getItemAt()方法遍历所有条目(这里假设后台发来的数据如果值是"AL"或者"AK"则设定为选定状态),如果值相等,则将该条目在List组件里的索引号保存到一个数组里面,最后将这个类型为数组的临时变量的值赋给List组件的selectedIndices属性,操作完成。 http://www.flashv8.com/html/Flashjiaocheng/FLASHzujian/20080514/934.html