在Adobe Flex / Air中扩展组件时执行了[invalidateProperties()
,invalidateSize()
和invalidateDisplayList()
什么方法?
以及为什么有必要?
根据documentation,这些功能会在更新和呈现显示列表之前向Flex / Flash发出信号以调用另一个功能。此“其他功能”似乎用于验证(如果值不正确,则可以更改值)。因此,通过调用无效函数,您可以强制进行重新计算。或者换句话说,重画。这将除去任何剩余的图形工件。
这是我通过文档进行的解释。也许有更多经验的人可以基于我的回答。
所有这些组件都基于RENDER事件,因此,无论它们经历了多少更改(例如x,y,宽度等),它们每帧仅绘制一次。但是要使RENDER事件为每个组件触发,必须根据每个组件调用stage.invalidate()并对其进行解析。所有组件无效方法都允许您通过突出RENDER事件步骤或在其他情况下通过启动RENDER事件工作流来强制重绘组件。