2013-07-23 48 views
0

我想顯示一些按鈕給用戶只有當它是管理員。我想過使用狀態,但是,我不知道如何訪問其他mxml頁面中的按鈕來定義它們的可見性。隱藏和顯示按鈕在flex爲管理

回答

3

基本上,在某些時候,你的應用程序需要存儲信息,讓你確定用戶是否是管理員。

不知道任何關於您的設置;最簡單的方法是將該值存儲在某個靜態變量中;如下所示:

public static var isUserAdmin : Boolean = true; 

現在,您可以通過引用類名稱在應用程序的任何位置訪問該屬性。靜態變量存在於一個類中;而不是一個類的實例。

如果這是你想要的,你可以用它來控制組件內部的狀態。在某處的組成部分,或許在初始化事件處理程序,你可以這樣做:

if(myClassWithStaticVaraibles.isUserAdmin){ 
    currentState = 'adminState'; 
} else { 
    currentState = 'nonAdminState'; 
} 

你也可以用它來切換按鈕或其他用戶界面元素的可見性。這將顯示一個按鈕,如果用戶是管理員:

<s:Button visible="{myClassWithStaticVariables.isUserAdmin}" /> 

這將隱藏用戶管理員按鈕:

<s:Button visible="{!myClassWithStaticVariables.isUserAdmin}" /> 

有更復雜的方法比使用靜態變量;例如使用支持類似Singleton的依賴注入的框架,如Swiz或Robotlegs。在「現實世界」應用程序中;這種框架的使用似乎比靜態變量方法更普遍。但是,該方法是一樣的:鑑於

  1. 儲值地方
  2. 訪問值
  3. 修改意見顯示基於價值
+1

完美的答案!如果我能,我會把它標記爲這種情況下的解決方案! –