我們知道我們可以在我們的.mxml中定義狀態。事情是,我們的應用程序或組件可能只能在任何時候在其中的一個州。Flex(尤其是移動)狀態 - 多個同時狀態?
當對Flex Mobile進行編程時,橫向和縱向(方向)通常需要狀態以便輕鬆定義控件/組件/元素是否可見,(dis/en)是否可用,顏色。但是我們的應用程序或組件還具有其他狀態,獨立於屏幕方向,例如SufficientCredit和InsufficientCredit。
假設我們只在狀態爲SufficientCredit時才顯示提交按鈕。但是,當您更改手機的方向時,您還需要顯示/隱藏/着色其他控件。在現實生活中,您的信用狀態確實是SufficientCredit,但您的應用現在處於縱向或橫向狀態。現在我們的提交按鈕將消失,儘管它不處於InsufficientCredit狀態。
我不想創建像LandscapeSufficientCredit,LandscapeInsufficientCredit,PortraitSufficientCredit和PortraitInsufficientCredit這樣的「組合」狀態。我也不希望完全拋棄狀態並寫出一個巨大的if-else語句,其中每個分支必須包含修改組件屬性(顏色,大小,可視性等)的代碼,然後記得從很多地方調用它那會改變狀態。
我聽說過州政府組織,但是他們的文件很混亂,我不確定他們是否會在這種情況下提供幫助。
Stategroups可能是想要的;但我同意這些文檔很混亂。我沒有時間去嘗試解釋它。 [作爲旁白;在移動設備上,您的最佳性能結果可能是在updateDisplayList()中編寫自己的佈局/顯示代碼,而不是使用MXML。 – JeffryHouser
我擔心你會這麼說 - 在ActionScript中佈局/顯示,有大量條件用於「嗅探」方向和其他狀態,以及明確的組件屬性分配。我想這不是很糟糕,但它只是更多的工作/維護。在此之前,我會繼續尋找更好的國家團體解釋。 –
在我寫的應用程序中;我只是使用updateDisplayList()的unscaledWidth/unscaledHeight來確定如何顯示內容,而不考慮橫向/縱向。誠然,我可以尊重這對許多應用程序很重要。有時編寫自己的佈局代碼可能很乏味;但並不難。 – JeffryHouser