隐藏和显示flex的按钮为管理员

时间:2013-07-23 23:37:20

标签: flex

我想向用户显示一些按钮,只有它是管理员。我想过使用状态,但我不知道如何访问其他mxml页面中的按钮来定义它们的可见性。

1 个答案:

答案 0 :(得分:3)

基本上,在某些时候,您的应用程序需要存储可让您确定用户是否为管理员的信息。

不了解您的设置;最简单的方法是将值存储在某个静态变量中;像这样的东西:

public static var isUserAdmin : Boolean = true;

现在,您可以通过引用类名来访问应用程序中任何位置的该属性。静态变量存在于类中;不是在一个类的实例上。

如果这是您想要的,您可以使用它来控制组件内的状态。在组件的某个地方,也许在初始化事件处理程序中,您可以这样做:

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

您还可以使用它来切换按钮或其他UI元素的可见性。如果用户是管理员,则会显示一个按钮:

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

这将隐藏用户管理员的按钮:

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

有比使用静态变量更复杂的方法;例如使用一个框架,如Swiz或Robotlegs,支持类似Singleton的依赖注入。在“现实世界”的应用程序中;使用这种框架似乎比静态变量方法更常见。但是,方法是一样的:

  1. 在某处存储价值
  2. 视图中的访问值
  3. 根据值
  4. 修改视图显示