一个list定义组件,网上找了很久没有,自己做了一个。希望对大家有用!!!
代码:MDICanvas是flexlib组件里面的,可以去找到这个swc,然后导入就行了。
<?xml version="1.0" encoding="utf-8"?>
<ns2:MDICanvas
xmlns:ns2="flexlib.mdi.containers.*"
xmlns:mx="http://www.adobe.com/2006/mxml"
width="400" height="400"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
import com.sunfairs.vo.BuildResourceVO;
import mx.events.ListEvent;
import mx.events.IndexChangedEvent;
import mx.collections.ArrayCollection;
private var listData:ArrayCollection = new ArrayCollection();
private var listDataBuilding:ArrayCollection = new ArrayCollection() ;
private var buildResourceArray:Array ;
public function setBuildingData(buildResourceArray:Array):void
{
this.buildResourceArray = buildResourceArray ;
for (var i:int = 0 ; i < this.buildResourceArray.length ; i ++)
{
var brVO:BuildResourceVO = BuildResourceVO(this.buildResourceArray[i]) ;
var str:String = brVO.level +"级"+ brVO.buildType;
listDataBuilding.addItem(str) ;
}
}
private function initApp():void {
listData.addItem("I级粮田") ;
listData.addItem("I级伐木场") ;
listData.addItem("I级皮料") ;
listData.addItem("I级铁矿") ;
}
private function onItemClick(event:ListEvent):void
{
var selectName:String = String(event.rowIndex) ;
addBuild(selectName) ;
}
/**
*
*
*
*/
private function addBuild(selectName:String):void
{
switch (selectName)
{
case "0" :
this.listDataBuilding.addItem("I级粮田" ) ;
addBuild2Array("粮田") ;
break ;
case "1" :
this.listDataBuilding.addItem("I级伐木场") ;
addBuild2Array("伐木场") ;
break ;
case "2" :
this.listDataBuilding.addItem("I级皮料") ;
addBuild2Array("皮料") ;
break ;
case "3" :
this.listDataBuilding.addItem("I级铁矿") ;
addBuild2Array("铁矿") ;
break ;
}
}
private function addBuild2Array(type:String):void
{
var brVO:BuildResourceVO = new BuildResourceVO() ;
brVO.buildType = type ;
brVO.level = 1 ;
brVO.times = 5 ;
this.buildResourceArray.push(brVO) ;
}
private function upgradeClick(event:MouseEvent):void
{
if (buildingList.selectedIndex == -1)
{
return ;
}
var i:int = buildingList.selectedIndex ;
var brVO:BuildResourceVO = BuildResourceVO(this.buildResourceArray[i]) ;
brVO.level ++ ;
listDataBuilding.removeItemAt(i) ;
listDataBuilding.addItemAt(brVO.level + "级" + brVO.buildType,i) ;
buildingList.selectedIndex = i ;
}
]]>
</mx:Script>
<mx:HBox>
<mx:List id="buildNameList" x="22" y="12" height="185" dataProvider="{listData}" itemClick="onItemClick(event)"/>
<mx:List id="buildingList" x="204" y="12" height="185" dataProvider="{listDataBuilding}"/>
</mx:HBox>
<mx:Button id="upgrade" label="升级" bottom="50" right="50" click="upgradeClick(event)" />
</ns2:MDICanvas>