我们正在构建一个flex项目,并希望它能够更快地渲染。我们确实有这样的情况:我们引用父模块大小属性来调整当前模块容器的大小,以及一组属性的当前模块大小属性,包括字体大小和元素位置和大小。
为它创建临时变量会有所帮助吗? a)pcw = parentcontainer.width,pch = parentcontainer.height b)ccw = currentcontainer.width,cch = currentcontainer.height
并在进行定位时参考pcw,pch,ccw和cch。这会有帮助吗?
另外,如果定位的大部分将在mxml中完成,将在初始化函数中设置这些临时变量,允许它们在mxml中使用,以便在浏览器大小更改时它们将调整大小。感谢指点
答案 0 :(得分:1)
除非你的应用程序改变它的形状很多,否则使用Flex 布局时应该没有任何问题如果你使用正确的皮肤/组件/布局标准。
大多数问题不是来自Flex,而是大多数人添加到他们自己的应用程序中的代码,这会导致整个系统变慢。确保您了解Flash性能改进(如数据结构,限制绑定,正确的体系结构,对象生命周期等)。
答案 1 :(得分:1)
我不确定您是否使用术语“模块”作为通用术语来引用某个组件,或者您明确指的是Module类的类。
如果容器知道它的父母,它会破坏封装。在Flex中,父母总是负责确定孩子的大小;而且孩子不应该自己的身材。
你有这样的代码来访问父母的身高和宽度:
pcw=parentcontainer.width
parentcontainer.height
我无法想象如何保存父母的身高和宽度值会加速任何事情。
我也发现很难想象知道父容器的宽度和高度是有帮助的。容器通常有一个以上的孩子。重要的是要知道一个组件有多大的尺寸来布置它自己的孩子,而不是父母有多少空间。
调整组件子项的大小和位置的适当方法是覆盖updateDisplayList()。 updateDisplayList()有两个参数:unscaledWidth和unscaledHeight;也就是说,本质上是组件的高度和宽度。您应该根据这两个值来调整组件子项的大小和位置。
当然,这样做通常依赖于ActionScript;不是MXML。
您的主要问题似乎是想提高效果。应用程序的性能涉及许多因素。使用ActionScript进行布局而不是MXML可能是有助于提高性能的一个因素。最大限度地减少对绑定的使用是另一件有时可以帮助提高性能的方法。
您是否使用过Flex Profiler?你有代号吗?做这些事情是否有助于您确定性能问题究竟是什么?