Flex:相对规模和性能

but5z9lq  于 2022-09-21  发布在  Apache
关注(0)|答案(2)|浏览(140)

我们正在建设一个灵活的项目,希望它渲染得更快。我们确实有这样的情况,我们引用父模块大小属性来调整当前模块容器的大小,以及一组属性的当前模块大小属性,包括字体大小和元素位置和大小。

创建临时变量是否有帮助:a)pcw=parenttainer.width,pch=parenttainer.th;b)cw=Currenttainer.width,CCH=Currenttainer.th

并在定位时参考PCW、PCH、CCW和CCH。这会有帮助吗?

另外,考虑到大部分定位将在mxml中完成,是否会在初始化函数中设置这些临时变量,从而允许在mxml中使用它们,以便随着浏览器大小的改变而调整它们的大小。感谢您的指点

mlmc2os5

mlmc2os51#

我不确定您使用术语“模块”是指组件,还是明确指的是Module类的类。

如果容器知道它的父级,它就会破坏封装。在Flex中,父母总是负责调整其孩子的大小;而孩子永远不应该调整自己的大小。

您有如下代码来访问父对象的高度和宽度:

pcw=parentcontainer.width
parentcontainer.height

我无法想象保存父对象的高度和宽度值会如何提高速度。

我还发现很难想象知道父容器的宽度和高度会有帮助的情况。通常,一个容器有多个子项。重要的是要知道一个组件有多大的大小来布局它自己的子项,而不是父项有多少空间。

调整组件子级的大小和定位其位置的适当方法是重写updateDisplayList()。UpateDisplayList()有两个参数:unscaledWidth和unscaledHeight;本质上就是组件的高度和宽度。您应该根据这两个值调整和定位组件的子项。

当然,这样做通常依赖于ActionScript,而不是MXML。

您的主要问题似乎想要提高性能。影响一款应用程序性能的因素很多。使用ActionScript进行布局而不是MXML可能是有助于提高性能的一个因素。将绑定上的使用量降至最低是另一件有时有助于提高性能的事情。

您使用过Flex Profiler吗?你读过代码了吗?执行这些操作是否有助于您确定性能问题到底是什么?

ujv3wf0j

ujv3wf0j2#

除非你的应用程序改变了它的形状很多,如果你使用了适当的皮肤/组件/布局标准,那么使用Flex布局应该不会有任何问题。

大多数问题不是来自Flex,而是大多数人添加到自己的应用程序中的代码导致整个系统变慢。一定要温习Flash的性能改进(比如数据结构、限制绑定、适当的架构、对象生命周期等)。

相关问题