|
|
|
Changed subject and severity to reflect this is a runtime error not a Flash Player crash.
This is a tricky bug to fix - there is a very simple workaround (as much as it pains me to suggest using callLater()) to workaround this issue and I'd suggest using the workaround.
In the itemEditEnd event handler, put the disabling grid code in a callLater block and the infinite loops is prevented. A la: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ private function disableGrid():void { grid.enabled=false; } ]]> </mx:Script> <mx:DataGrid id="grid" editable="true" itemEditEnd="callLater(disableGrid)"> <mx:columns> <mx:DataGridColumn dataField="x"/> <mx:DataGridColumn dataField="y"/> <mx:DataGridColumn dataField="y"/> </mx:columns> <mx:dataProvider> <mx:Array> <mx:Object x="1" y="2" col3="3"/> <mx:Object x="1" y="2" col3="3"/> <mx:Object x="1" y="2" col3="3"/> </mx:Array> </mx:dataProvider> </mx:DataGrid> </mx:Application> Deferring - please use suggested workaround.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The RTE is:
Error: Error #1023: Stack overflow occurred.
at mx.core::ScrollControlBase/set enabled()
at mx.controls.listClasses::ListBase/set enabled()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()