我在一些桌面应用程序上使用flex工作了近两年。到目前为止,我从未遇到任何与性能相关的问题,但今天我们完成了iPad的移动应用程序,我面临挑战,iPad上的应用程序速度非常慢。
http://i.stack.imgur.com/qkbWn.png
慢,意味着当我按下菜单中的按钮来更改分割视图时,我必须等待5s。然后滚动速度非常慢,只有不到一个fps而我的TextInput开始出错(文本不再出现在他的框中)。
我开始阅读很多关于移动平台优化的博客文章和演示文稿,然后我重写了一些我使用的组件。我删除了SkinnableContainer,并将其替换为VGroup,包括一些基于ActionScript的绘图。
现在你看到的是一个VGroup(深灰色的)包含其他一些VGroup(这里有标题的组),然后每个小部件都是一个带有标签和Widget的HGroup。我只对文本使用Label和TextInput。
另一个页面上的创建时间很慢(创建视图几秒钟),其中只有4个文本小部件,或者另一个只有一个带有自定义项目渲染器的列表,其中每行是一组4个标签
整个事情都与RobotLegs联系在一起,没有什么花哨的东西,在视图中注入了一个模型,在开始时我在视图上设置了一个成员变量,用这个对象来绑定我的变量。
坦率地说,我现在的想法是:它闻起来很腥,因为如果我做的一切都做得不好,就不可能有如此低的性能,并认为flex在移动平台上具有竞争力。所以现在我正试图逐个禁用应用程序,试图找到可能会减慢它的速度。我有几个嫌疑人需要检查,例如我有一些绑定警告要检查,然后看看机器人是否已经解决了这个问题。
所以我的主要问题是你的想法,你能否对“有问题”和“我们如何解决它”提出一些看法。
由于
答案 0 :(得分:0)
flash.text.TextField
的创建速度比mx.controls.Label
快许多倍。其他组件也是如此。这一切都非常耗费开发人员的时间。最后,无论如何你都不会得到一个流畅的应用程序,但我相信它可以变得可用。