我使用adobe flex 3开发了一个应用程序。此应用程序中有许多自定义组件。我开发了这个产品,假设最小屏幕分辨率为1024 * 768,因此我编写了几个组件的硬编码宽度。
但是,我了解到客户在分辨率为800 * 600的投影机上使用该产品。
当我尝试以800 * 600分辨率运行应用程序时,我无法使用该应用程序,因为很少有屏幕看不到。
我预见如果申请800 * 600,那么在更大的分辨率上看起来不会很好。
我想知道如何以最小的效果解决这个问题?我无法决定是否必须以较低的分辨率重做大部分组件。
[编辑]
根据答案,为了测试,我已将组件的宽度和高度更改为100%。基本上这个组件是TitleWindow
,底部有ControlBar
。并用于popup
。我遇到的问题是,ControlBar
没有出现。该应用程序具有VerticalScrollBar
但仍无法在弹出窗口中滚动。在垂直滚动时,应用程序正在滚动但不是弹出窗口。
希望您了解我的问题,并建议解决方案。
由于
安吉
答案 0 :(得分:1)
你根本不应该使用硬编码的尺寸。使用percentWidth
,percentHeight
和布局约束。
答案 1 :(得分:1)
一种选择是使用百分比宽度。在ActionScript中,您可以在组件上设置percentWidth和percentHeight属性。在MXML中,您只需在width或height属性中指定百分号,如下所示:
<mx:UIComponent width="100%" height="100%" />
另一种选择是根据组件的大小在updateDisplayList()中调整孩子的大小和位置。传递给updateDisplayList()的值是组件的高度和宽度,由该组件的父级定义。
虽然MXML可以掩盖它有时所有组件的大小,并根据父级设置的大小将其子级定位在updateDisplayList()中。