使用哪种无效方法
Which invalidate method to use
我对使用哪种无效方法以及何时使用它感到有点困惑。我需要更改一个组件的 x 和 y,在这种情况下应该调用一个失效方法来优化,但我不知道具体是哪个方法以及何时
target.addElement(node);
node.x = 100 + target.horizontalScrollPosition;
node.y = 100 + target.verticalScrollPosition;
node和target都是Groups
这取决于组件,也许您根本不需要调用任何组件。根据给定的一段代码,我会说它是 invalidateSize()
。但是容器通常可以很好地测量它们的尺寸 属性。 invalidateDisplayList
如果您需要更改组件的显示方式,这可能是个不错的选择。
所以,一般来说,这取决于您正在实施的组件(超类型等)。
编辑:
由于这两个实例都是组,因此您根本不应调用任何失效方法。您只会在实现具有附加属性的自定义组件时调用这些方法。对于群组,一切都已提前为您完成。实现了组件生命周期,各种布局提供了舒适的间接级别。
当您扩展组(或任何其他组件)时,您应该熟悉组件生命周期。
经验法则:
- 忽略纯 MXML 中的无效调用,因为它是由 MXML 编译器和组件本身完成的。
- 在覆盖的 setter 中使用失效调用,这会改变组件的状态(即使在 MXML 中)。如果 setter 随处使用 - 甚至在组件私有方法内部,这通常会导致组件的干净而简单的设计。
- 请谨慎使用
validateSize
、validateNow
等,因为这些是避免组件生命周期的简单同步快捷方式。
失效live cycles是基于flash players elastic race track,将数据的渲染和处理划分到处理代码的不同方面。
关于无效调用背后的想法的进一步阅读:
更新的弹性跑道[1]和弹性跑道[2]
我对使用哪种无效方法以及何时使用它感到有点困惑。我需要更改一个组件的 x 和 y,在这种情况下应该调用一个失效方法来优化,但我不知道具体是哪个方法以及何时
target.addElement(node);
node.x = 100 + target.horizontalScrollPosition;
node.y = 100 + target.verticalScrollPosition;
node和target都是Groups
这取决于组件,也许您根本不需要调用任何组件。根据给定的一段代码,我会说它是 invalidateSize()
。但是容器通常可以很好地测量它们的尺寸 属性。 invalidateDisplayList
如果您需要更改组件的显示方式,这可能是个不错的选择。
所以,一般来说,这取决于您正在实施的组件(超类型等)。
编辑: 由于这两个实例都是组,因此您根本不应调用任何失效方法。您只会在实现具有附加属性的自定义组件时调用这些方法。对于群组,一切都已提前为您完成。实现了组件生命周期,各种布局提供了舒适的间接级别。
当您扩展组(或任何其他组件)时,您应该熟悉组件生命周期。
经验法则:
- 忽略纯 MXML 中的无效调用,因为它是由 MXML 编译器和组件本身完成的。
- 在覆盖的 setter 中使用失效调用,这会改变组件的状态(即使在 MXML 中)。如果 setter 随处使用 - 甚至在组件私有方法内部,这通常会导致组件的干净而简单的设计。
- 请谨慎使用
validateSize
、validateNow
等,因为这些是避免组件生命周期的简单同步快捷方式。
失效live cycles是基于flash players elastic race track,将数据的渲染和处理划分到处理代码的不同方面。
关于无效调用背后的想法的进一步阅读: 更新的弹性跑道[1]和弹性跑道[2]