【问题标题】:Flex 3 application done for higher resolution (1024*768 or more) not working in lesser resolution (800*600)Flex 3 应用程序为更高分辨率(1024*768 或更高)完成,但在更低分辨率(800*600)下无法工作
【发布时间】:2023-11-14 06:02:01
【问题描述】:

我使用 adobe flex 3 开发了一个应用程序。此应用程序中有许多自定义组件。我开发了这个产品,假设最小屏幕分辨率为 1024*768,因此我硬编码了几个组件的宽度。

但是,我了解到客户正在使用分辨率为 800*600 的投影仪上的产品。

当我尝试在 800*600 分辨率下运行应用程序时,我无法使用该应用程序,因为有几个屏幕没有完全看到。

我预见如果申请800*600,在更大的分辨率下会不好看。

我想知道如何以最小的效果解决这个问题?我无法决定是否必须以较低的分辨率重做大部分组件。

[编辑]

根据答案,为了测试,我已将组件的宽度和高度更改为 100%。基本上这个组件是一个TitleWindow,底部有一个ControlBar。并用于popup。我面临的问题是,没有看到ControlBar。该应用程序具有VerticalScrollBar,但仍无法在弹出窗口中滚动。在垂直滚动时,应用程序正在滚动,但不是弹出窗口。

希望您能理解我的问题并提出解决方案。

谢谢

安吉

【问题讨论】:

    标签: apache-flex flex3 adobe custom-component screen-resolution


    【解决方案1】:

    您根本不应该使用硬编码的尺寸。使用percentWidthpercentHeight 和布局约束。

    【讨论】:

    • 感谢您的回复。是的,我可以使用,但在开发过程中,我的印象是最小分辨率为 1024*768,并且自定义组件中少数孩子的宽度和高度硬编码值。
    • +1 你使用绝对宽度/高度值,你几乎总是欢迎麻烦。
    【解决方案2】:

    一种选择是使用百分比宽度。在 ActionScript 中,您可以在组件上设置 percentWidthpercentHeight 属性。在 MXML 中,您只需在 width 或 height 属性中指定百分比符号,如下所示:

    <mx:UIComponent width="100%" height="100%" />
    

    另一种选择是根据组件的大小在updateDisplayList() 中调整您的孩子的大小和位置。传递给 updateDisplayList() 的值是组件的高度和宽度,由该组件的父级定义。

    虽然 MXML 有时可以根据父级设置的大小在 updateDisplayList() 中屏蔽所有组件的大小和位置。

    【讨论】:

    • @Anji 你将不得不展示一些代码和/或一些屏幕截图以获得更多帮助。我无法根据您的更新为您指明特定的方向。
    最近更新 更多