天天看点

Flex 关于validateNow方法

官方解释:验证并更新此对象的属性和布局,如果需要的话重绘对象。通常只有当脚本执行完毕后,才会处理要求进行大量计算的处理属性。如果脚本多次设置了 width 属性,则延迟处理可防止进行多次处理。此方法允许您手动覆盖此行为。

个人理解:验证组件的加载完成度,也就是说,当你想调用组件的属性方法,但又怕组件在调用时未加载完成造成“TypeError: Error #1009: 无法访问空对象引用的属性或方法。”,这时,在你要调用组件的属性方法前面加上validateNow();,avm就会等此组件加载完成后继续执行下面的代码,就不会存在空指针了,典型应用:

这样写可以保证Tree组件在页面加载完成后展开所有节点,如果不加,展开节点的代码就会在组件加载完成之前执行,以至于代码失效,节点无法展开。

baseInfo是s:NavigatorContent,加了此方法就不会报空指针了,[size=medium][b]是对ViewStack转换tab时外部调用tab内部数据报空指针的完美解决。[/b][/size]

此方法应该也适用于其他组件,就不一一举例了,各位可自行尝试,祝好运:)