Mik*_*eck 3 apache-flex layout dynamic
我对当前项目(将在Flash播放器中运行的Flex应用程序)有一个要求,即在表单上显示组件的任意子集,同时根据应用程序状态的某些方面隐藏所有其他组件.有大约十几个不同的文本框和下拉菜单,但有些根据以前输入的用户数据变得无关紧要,我们不想在我们到达这个特定表单时显示它们.每次显示此表单时,我都需要显示这些组件的许多排列中的任何一个.
我正在试图决定解决这个问题的最佳方法是什么.我应该创建一个包含所有必需控件的Canvas(或其他容器),然后在我不需要的那些上设置visible = false吗?然后问题就是确保布局看起来不错.我不希望隐藏的控件存在差距.
我想到的另一个选项就是有一个机制可以动态实例化TextInput或CheckBox等组件,然后调用container.addChild(control)来构建组件而不必担心间隙问题.
这似乎是一个在flex中有惯用解决方案的问题,但我不知道它是什么.这些想法都不是很好,所以我想知道是否有其他人有更好的主意.
最好的做法是使用状态.例如:
<mx:states>
<mx:State name="State1">
<mx:AddChild position="lastChild">
<components.../>
</mx:AddChild>
</mx:State>
<mx:State name="State2">
<mx:AddChild position="lastChild">
<mx:Canvas.../>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:VBox.../>
</mx:AddChild>
</mx:State>
</mx:states>
Run Code Online (Sandbox Code Playgroud)
然后在代码中,调用this.currentState ="State1"以启用第一个状态等.使用状态,您可以有选择地显示和隐藏组件.
我建议谷歌搜索flex状态教程,并尝试一些以正确了解状态如何工作.
| 归档时间: |
|
| 查看次数: |
3262 次 |
| 最近记录: |