论坛首页 编程语言技术论坛

Flex 关于validateNow方法

浏览 4026 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-18  
validateNow();


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

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

这样写可以保证Tree组件在页面加载完成后展开所有节点,如果不加,展开节点的代码就会在组件加载完成之前执行,以至于代码失效,节点无法展开。
dModelingVS.selectedIndex = 1;
validateNow();
dmGuide.baseInfo.getInfo(deviceDG.selectedItem.uid);

baseInfo是s:NavigatorContent,加了此方法就不会报空指针了,是对ViewStack转换tab时外部调用tab内部数据报空指针的完美解决。
此方法应该也适用于其他组件,就不一一举例了,各位可自行尝试,祝好运:)
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics