2011-10-01 22 views
1

我認爲我剛剛發現了一個明顯的錯誤 in flex 4.5來自Adobe Flex Transitions的有趣行爲 - 可能的Bug

有關應用程序的鏈接是here查看源已啓用!

這些都是過渡:

<s:states> 
    <s:State name="State1"/> 
    <s:State name="State2"/> 
    <s:State name="State3"/> 
</s:states> 

<s:transitions> 

    <s:Transition fromState="State1" toState="State2" autoReverse="true" > 
     <s:Sequence> 
      <s:Move duration="500" target="{goButton}"/> 
      <s:AddAction targets="{[tagsLabel,tagsTextInput]}"/> 
      <s:Fade targets="{[tagsLabel,tagsTextInput]}" duration="500" /> 
     </s:Sequence> 
    </s:Transition> 

    <s:Transition fromState="State1" toState="State3" > 
     <s:Sequence> 
      <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList]}" /> 
      <s:Move duration="500" target="{goButton}" /> 
      <s:AddAction target="{lessonsDataGrid}" /> 
     </s:Sequence> 
    </s:Transition> 


    <s:Transition fromState="State2" toState="State3" > 
     <s:Sequence> 
      <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,tagsLabel,tagsTextInput]}" /> 
      <s:Move duration="500" target="{goButton}" /> 
      <s:AddAction target="{lessonsDataGrid}" /> 
     </s:Sequence> 
    </s:Transition> 

    <s:Transition fromState="State3" toState="State1" > 
     <s:Sequence> 
      <s:RemoveAction target="{lessonsDataGrid}" /> 
      <s:Move target="{goButton}" duration="500" /> 
      <s:AddAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList]}" /> 
     </s:Sequence> 
    </s:Transition> 

</s:transitions> 

你看,我的工作在這裏視線一點點;在DropDownListindexChangeEvent上激活一個轉換,另一個轉換由放大鏡Button上的clickEvent觸發。

我面臨的問題是:

如果我點擊「放大鏡」 Button三次,(臨門不是3倍,但1次點擊,等待過渡,再點擊一下,等待過渡,最後點擊),然後我得到一些有趣的行爲:放大鏡Button消失,即使我從來沒有讓它在消失的過渡;應該消失的TextInput沒有;它不知何故有卡住State3這是其中Datagrid狀態。

相信我,我已花費至少4小時在這個寫作和重寫這些轉換,我嘗試了各種各樣的東西在網絡上,但無濟於事。

希望有人可以幫忙,我不想接受Flex有錯誤。我很高興知道這是我做錯了事,Flex仍然是可靠的。

非常感謝。

回答

2

我已經玩了一段時間了。注意到由於某種原因,當更改狀態時,其中一個AddItems覆蓋將從Border容器中刪除索引爲0的元素(如果您爲removedButton添加了removedFromStage事件的處理程序,您可以自己調試並查看)。我仍然在調查這個問題,但我有一個快速解決您的問題。只需在所有三種狀態中包含goButton:includeIn =「State1,State2,State3」並且它不會消失:] 如果我找到我將發佈給您的原因。

希望幫助,

大火

+0

我想試試感謝 –

+0

到目前爲止好。會做更多的測試 –