2010-07-07 57 views
0

我第一次從狀態A轉換到B時,它不會播放轉換。在第一次轉換之後,相同的狀態更改將執行轉換。Flex 4轉換不是第一次

在我讓狀態B加載之前,它解析一個xml文件並將其映射到對象。當這完成時,狀態改變。也許它與解析xml有關。但是我可以確認解析完成,然後它改變狀態。

<s:Transition toState="B"> 
    <s:Sequence> 
     <s:Move target="{menu}" duration="300" /> 
     <s:AddAction target="{newsPostsList}" /> 
     <s:Fade target="{newsPostsList}" /> 
    </s:Sequence> 
</s:Transition> 
+1

你能提供一個完整的可運行示例來演示這個問題嗎?如何/何時設置轉換? – JeffryHouser 2010-07-07 11:44:58

回答

0

嘗試禁用XML解析以確保這不是問題。您也可以明確指定轉換的起始狀態(狀態「A」或狀態「*」表示任何狀態)。另外嘗試爲您的移動動作添加明確的x和y值,只是爲了理智。這可能是菜單組件在狀態A和B之間的x和y位置沒有區別。

+0

我禁用了xml解析,我可以確認它在那之後正確播放它。我的應用程序中有另一個狀態,它以相同的方式分析xml數據,但是它的轉換權是正確的。我將解析器包裝在一個任務擴展中,並且我確信在解析完成後調用完整的函數。我在這裏無能爲力...... – 2010-07-12 06:59:29

+0

我忘了補充說我使用歐芹作爲框架。我剛剛發現,當我從解析器中移除注入的newsPosts時,轉換再次運行。我想知道這個問題會是什麼。也許這與歐芹的注射有關。 – 2010-07-12 07:09:35

0

我有同樣的問題。我在轉換中使用了「淡入淡出」和「淡入淡出」,這些都不是第一次使用,而是在之後完美地工作。恐怕我懶得把我的問題縮小到一個可行的例子 - 這太複雜了。但是,我的ViewStack在我的應用程序中由TabBar控制,並且狀態轉換包括他們的一些子項的外觀。在我的情況下沒有XML解析:)

我希望這與SDK-13933錯誤(http://bugs.adobe.com/jira/browse/SDK-13993)無關。

0

事實證明,我不得不擺脫「includeIn = myState」,並將其替換爲「visible.myState = true」和「includeInLayout.myState = true」。它使每次轉換都運行。

0

我發現了邪惡的來源:) 原來我在解析的數據可用於模型之前解僱了一點狀態。

感謝大家對我的幫助。 我已經遇到問題,並且之前沒有開始第一次射擊。您的答案將成爲檢查常見錯誤的資源。

1

您需要查看狀態中包含的組件的creationPolicy。默認情況下,它是沒有實際意義的。 creationPolicy =「all」可以添加到addChild元素中,或者在我的情況下,添加到viewstack - 我嘗試解決這個問題時已經失去了幾個小時。現在所有的工作順利。

0

我發現我不得不把代碼:includeIn="<my state>" itemCreationPolicy="immediate"在所有的狀態轉換到組件。一旦項目創建完成,轉換就可以順利進行。

看來VGroups不會將itemCreationPolicy設置給他們的孩子,因此有必要在所有元素上重複此代碼。