Flex中的UI组件生命周期

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

在UI组件生命周期中,我听到了验证和无效事件。

请简单地给我解释一下这些事件。

updateDisplayList()方法在该生命周期中做些什么。

如果可能的话,请简短地给我解释一下。

提前谢谢您。

ztyzrc3y

ztyzrc3y1#

Flex组件生命周期是Flex用来设置组件的一组方法和事件。在我们自己的组件中,扩展了UIComponent类,我们可以侦听这些事件或覆盖这些方法来执行特定于我们的组件的事情。

我要补充的是,updateDisplayList()是一个方法,而不是事件,以防它们有任何混淆。

以下是主要的可重写方法:

  • createChildren()**:用于创建组件的子级。
  • CommProperties()**:这是通配符方法。您可以使用它来协调单个位置中的多个属性更改。它的用途取决于您要创建的组件和属性。
  • measure()**:用于根据子项设置组件的理想高度和宽度。您可以设置测量高度和测量宽度。
  • updateDisplayList()**:它用于执行任何与显示相关的操作,最常见的是定位和调整组件的子级。

所有这些方法都将在初始组件创建期间运行。但是,这些方法中的三个--CommProperties()、measure()和updateDisplayList()--可以设置为在下一个呈现事件期间运行。要准备运行它们,只需使用适当的无效方法使它们无效:

  • invaliateProperties()强制CommProperties()重新运行。
  • invaliateSize()强制重新运行measure()。
  • invaliateDisplayList()强制updateDisplayList()重新运行。

渲染事件触发的频率取决于应用程序的帧速率。我认为默认的Flex帧速率是每秒24帧,所以每1/24秒就有一个渲染事件。

我将组件生命周期定义为方法和事件的集合。因此,以下是事件发生的顺序:

  • 预初始化
  • 初始化
  • 儿童添加
  • 更新完成
  • creationComplete

我相信,updateComplete将在每个呈现器事件之后触发。但其他组件是组件创建的一部分。

You should read the Flex documentation on this

The Spark Component Lifecycle添加了不同的挂钩以适应两类方法;一个类用于业务逻辑,另一个类用于皮肤。但是,它延长了MX/Halo组件的生命周期。

uurity8g

uurity8g2#

简而言之:

  • 无效标记属性以进行验证。验证只会在下一个呈现周期中进行,因此如果同时设置属性的值5次,则只会有效地提交最后一个值。(为您提供更好的性能)
  • 验证:如果属性被标记,它将在CommProperties()方法中更新
  • updateDisplayList()在验证后调用:现在可以使用属性的新值根据这些值更改视图

更长的版本:http://www.dlgsoftware.com/primers/Primer_on_Flex3_Component_Lifecycle.htm

相关问题