Переключение состояний в flex 4 - PullRequest
0 голосов
/ 26 апреля 2011

Я использовал состояния в своем приложении. Дело в том, что я сделал первый элемент в моем списке, который будет выбран. поэтому я дал так,

if(itemIndex == 0)
  this.currentState="selected";

это работает нормально. Проблема в том, что при выборе другого элемента первый элемент не меняет своего состояния, он остается в выбранном состоянии до тех пор, пока его не щелкнут. Мой код выглядит так,

<s:BorderContainer id="outerCont" width="275" height="100" borderVisible="false"
                       backgroundColor.normal="#3D3C3C" backgroundAlpha.selected="0.1"
                       backgroundColor.selected="{data.color}">

Мои штаты такие,

<s:states>
    <s:State name="normal" />
    <s:State name="hovered" />
    <s:State id="selState" name="selected" />
</s:states>

Заранее спасибо !!

1 Ответ

1 голос
/ 26 апреля 2011

В вашем коде для изменения состояний вы никогда не вернетесь к состоянию по умолчанию. Итак, когда itemIndex равен 0; вы устанавливаете в выбранное состояние; но не показывать код для удаления из выбранного состояния. Попробуйте что-то вроде этого:

if(itemIndex == 0)
  this.currentState="selected";
else 
  this.currentState="someOtherState";

Чтобы изменить состояние, когда что-то выбрано в списке Flex, вы можете использовать событие изменения:

<s:List change="onChange()" />

<fx:Script><[[
  public function onChange():void{
   if(itemIndex == 0)
     this.currentState="selected";
   else 
     this.currentState="someOtherState";
   }
]]></fx:Script>

Это помогает? Если не; вам придется уточнить немного больше.

...