为什么在adobe flex / air中扩展组件时invalidateProperties(),invalidateSize()和invalidateDisplayList()?为什么这些是必要的?

时间:2014-07-21 12:56:45

标签: actionscript-3 flash flex air flex4

为什么在adobe flex / air中扩展组件时会执行invalidateProperties()invalidateSize()invalidateDisplayList()方法?

为什么这些是必要的?

2 个答案:

答案 0 :(得分:1)

根据documentation,这些函数指示flex / flash在更新和呈现显示列表之前调用另一个函数。这个“其他功能”似乎是用于验证(如果它们不正确,可能会改变这些值)。因此,通过调用invalidate函数,可以强制重新计算。或者,换句话说,重绘。这将删除任何遗留的图形工件。

这是我通过文档解释的。也许拥有更多经验的人可以建立我的答案。

答案 1 :(得分:0)

所有这些组件都基于RENDER事件,因此无论它们经历多少次更改(例如:x,y,宽度等等),它们每帧仅绘制一次。但是要为每个组件触发RENDER事件,必须在每个组件的基础上调用和解析stage.invalidate()。所有组件无效方法都允许您通过浏览RENDER事件步骤强制重新绘制组件,或者在其他情况下通过启动RENDER事件工作流来强制重新绘制组件。