Dale un propiedad "data" con el nombre del estado al que quieras ir (ten en cuenta que el estado inicial es una cadena vacía "") a cada uno de los elementos del dataProvider.
Aquí lo tienes:
Código :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:states>
<mx:State name="state1">
<mx:AddChild position="lastChild">
<mx:Button x="68" y="10" label="ok"/>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Button x="68" y="40" label="cancel"/>
</mx:AddChild>
</mx:State>
<mx:State name="state2" basedOn="state1">
<mx:AddChild position="lastChild">
<mx:CheckBox x="68" y="70" label="Checkbox"/>
</mx:AddChild>
</mx:State>
<mx:State name="state3" basedOn="state2">
<mx:AddChild position="lastChild">
<mx:ColorPicker x="68" y="96"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:ArrayCollection id="arr">
<mx:source>
<mx:Object label="uno" data=""/>
<mx:Object label="dos" data="state2"/>
<mx:Object label="tres" data="state3"/>
</mx:source>
</mx:ArrayCollection>
<mx:Tree id="tuTree" change="{currentState=tuTree.selectedItem.data}" dataProvider="{arr}">
</mx:Tree>
</mx:Application>
Ten en cuenta que el origen de datos de los componentes es un ArrayCollection (también un array pero es peor). El XMLList existe simplemente por compatibilidad con AS2, pero en la práctica, no tiene utilidad.