运用Flex 为多用户创建不同的界面
使用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() 方法,不然就会出错。例如:
如果想删除 label1 ,就只能用ActionScript这样写“ v2.removeChild(label1)”。这里提醒大家一下,这里的删除容器不是彻底把该容器销毁了,而只是把这个容器从显示列表中移除了,它其实还是存在的,只是它的 parent 属性被设定成了 null ,以后你还是可以把它添加到显示列表中来让它重新显示的,而且它会保留被删除前的状态。
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>
如果想删除 label1 ,就只能用ActionScript这样写“ v2.removeChild(label1)”。这里提醒大家一下,这里的删除容器不是彻底把该容器销毁了,而只是把这个容器从显示列表中移除了,它其实还是存在的,只是它的 parent 属性被设定成了 null ,以后你还是可以把它添加到显示列表中来让它重新显示的,而且它会保留被删除前的状态。