使用Flex 为多用户创建不同的界面
Flex中的所有容器都继承自 Container 类,Container类又继承自 UIComponent……具体继承关系请参考帮助文档吧。这里要说的就是 Container 类中有几个比较好用的方法:addChild(),addChildAt() 以及 removeChild(),removeChildAt(),removeAllChildren()。
如果想要为不同的用户显示不同的试图,首先我们可以把所有用户的视图全部建立,然后根据用户登录的状态判断一下用户身份,把与用户无关的视图全部用 removeChild 删除。注意一下,removeChild() 方法的参数必须是DisplayObject 子类的实例。可视组件都是这个类的实例,所以你大可以放心的删除。而且删除的时候注意一下,只能调用被删除组件的父容器的 removeChild() 方法,不然就会出错。例如:
这两天做程序的时候尝试了如何用Flex为不同身份的用户显示不同的页面。我这个东西的用户有两种可能的身份:老师和学生。那么如何让他们登录之后看到的页面不一样呢? 全部用ActionScript动态创建是一个办法。不过我的ActionScript没有那么厉害,而且全部动态无法使用设计视图预览页面。怎么办呢?正统的不会可以投机取巧:)
Flex中的所有容器都继承自 Container 类,Container类又继承自 UIComponent……具体继承关系请参考帮助文档吧。这里要说的就是 Container 类中有几个比较好用的方法:addChild(),addChildAt() 以及 removeChild(),removeChildAt(),removeAllChildren()。
如果想要为不同的用户显示不同的试图,首先我们可以把所有用户的视图全部建立,然后根据用户登录的状态判断一下用户身份,把与用户无关的视图全部用 removeChild 删除。注意一下,removeChild() 方法的参数必须是DisplayObject 子类的实例。可视组件都是这个类的实例,所以你大可以放心的删除。而且删除的时候注意一下,只能调用被删除组件的父容器的 removeChild() 方法,不然就会出错。例如:
<mx:VBox id=”v1″><br /> <mx:VBox id=”v2″><br /> <mx:Label id = ”label1″><br /> </mx:VBox><br /></mx:VBox>