mx.controls::AdvancedDataGrid/findHeaderRenderer()......AdvancedDataGrid.as:5861

来源:互联网 发布:淘宝里抢的红包怎么用 编辑:程序博客网 时间:2024/05/25 08:12


问题:在使用AdvancedDataGrid动态生成列的时候,报了这么一个错


TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at mx.controls::AdvancedDataGrid/findHeaderRenderer()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:5861]
at mx.controls::AdvancedDataGrid/mouseEventToItemRenderer()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:2155]
at mx.controls::AdvancedDataGrid/mouseOverHandler()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:8380]

原因:在创建列的过程中,鼠标如果移动到AdvancedDataGrid上,mouseEventToItemRenderer就会执行,就报这个空指针错,此时headerItem还没有创建好。

解决办法:既然是由于鼠标事件引起的,当然还是让它去解决,思路是先屏蔽鼠标事件,在列创建好后在开放。

使用mouseChildren="false" :

<mx:AdvancedDataGrid id="myADG" 

mouseChildren="false"
updateComplete="myADG_updateCompleteHandler(event)"/>


myADG_updateCompleteHandler() 如下:

protected function myADG_updateCompleteHandler(event:FlexEvent):void
{
myADG.mouseChildren = true;
}


感谢Cato,有你点醒我才能解决该问题。




原创粉丝点击