Flex mx 样式管理性能

Flex mx style management performance

我遇到了 Flex MX StyleManager 的性能问题。 我正在实现主题支持,我 运行 setStyleDeclaration 用于大约 340 种不同的样式

    for ( var i:int =1 ; i<whiteStyles.lenght; i++ )
    { 

view.styleManager.setStyleDeclaration(whiteStyles[i], view.styleManager.getStyleDeclaration(String(whiteStyles[i]).substr(String(whiteStyles[i]).lastIndexOf(".")) +"_blue"), false)

      }

    view.styleManager.setStyleDeclaration(whiteStyles[0], view.styleManager.getStyleDeclaration(whiteStyles[0]+"_blue"), true)

我第一次调用该函数时 UI 更新大约需要 2 秒,因为我调用该函数所需的时间增长到 30 多秒。我之前尝试清除样式,但它不起作用。 关于如何改进这一点的任何提示?

setStyleDeclaration 很昂贵。没有办法解决这个问题。您正确使用了 'update' 标志。

我对增加的运行时间(从 2 秒到 30 秒)的猜测是,对于第一次调用,还没有很多组件存在。对于后续调用,可能已经创建了更多组件并且需要更长的时间来遍历它们(即使不在显示列表中也会更新所有组件)。如果是这种情况,那么唯一的解决方案是减少创建的组件总数,也许通过重新使用它们。