Easy way to handle change state is to override selected setter:
override public function set selected(v:Boolean):void
{
var oldValue:Boolean = selected;
super.selected = v;
if(oldValue != selected)
{
trace("change");
trace("change");
if(selected)
{
trace("selected");
}else{
trace("deselected");
}
}
}