【问题标题】:How to stop Flex UI components from freezing and tips for optimizing overall UI performance?如何阻止 Flex UI 组件冻结以及优化整体 UI 性能的提示?
【发布时间】:2014-04-17 21:36:28
【问题描述】:

我正在开发一个基于 Flash 的 Web 应用程序,该应用程序涉及背景中的 esri 地图图层,以及具有几个 UI 组件(文本字段、下拉菜单、ESRI 时间滑块、时间输入)的窗口面板弹出窗口字段等)

我在 UI 方面没有太多经验,尤其是 FLEX UI,我想知道是否有任何通用指南可以提高用户界面的速度和性能。

我的问题是我的应用程序似乎可以工作,直到某个点之后我的下拉菜单开始冻结并且您不能再从中选择任何项目。 UI 的其余部分很好,但某些组件只是停止响应。这主要包括下拉菜单和我的 ESRI 时间滑块。有时(我无法预测何时会发生),在点击播放后点击时间滑块上的暂停将不起作用。它基本上冻结了,并且随着时间滑块的移动,应该在 ESRI 地图上更新的数据没有显示出来。

如果此信息相关,则时间滑块涵盖的持续时间会因用户输入而异。

是否有任何策略来调查为什么会发生这种情况以及造成这种情况的一些原因?如何确保我的 UI 始终如一地工作?

【问题讨论】:

  • 如果没有精确的案例代码,几乎不可能为您提供帮助。这是基于用户输入的:因此您正在根据用户事件重绘内容,解决此问题的一种方法是在用户事件上构建缓冲区,定期合并事件(例如,小:1 秒,但更好每秒超过 10 个)并调度伪造的合并事件。例如:重绘内容的键盘输入:如果您输入很多内容,它会冻结 ui,因此您只需在 keyevents 上构建一个字母缓冲区,如果缓冲区不为空,则每秒发送带有所有字母的重绘事件。

标签: flash apache-flex user-interface freeze esri


【解决方案1】:

使用 Adob​​e Scout 配置您的应用程序。它是一个免费的 Flash 分析器,您可以从 Adob​​e Creative Cloud 安装它。基本上,如果系统无法保持良好的帧速率,UI 就会冻结。您可以在 Adob​​e 的 Getting started with Adobe Scout 文章中了解更多信息。这是一个报价:

最需要注意的是红线。这代表 你必须保持在每一帧以下的预算时间,如果你是 来满足你想要达到的帧率。例如,在 SWF 以每秒 30 帧 (fps) 的速度运行,您的预算为 33ms 帧(1000 毫秒/30 帧)。换句话说,如果您花费超过 每帧 33 毫秒,您的应用程序将开始卡顿和跳过 帧,你真的不想发生!

【讨论】:

  • Adobe Scout 只能安装在 64 位操作系统上
猜你喜欢
  • 1970-01-01
  • 2018-09-26
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多