Marc Hughes


Home
Blog
Twitter
LinkedIn
GitHub
about
I am a developer from a bit west of Boston.

Custom DataGrid headerRenderer based on Canvas

27 Jul 2007

I ran into a problem that I'm still not sure what was happening today. I had something like this:

public class MyHeader extends Canvas
{
...
}

...

myDataGridColumn.headerRenderer = new ClassFactory( MyHeader );

It worked, but upon mouse over or mouse move it would flicker like crazy. Extending Label or Button works no problem. I tried implementing various interfaces like IDataRenderer, IDropInListItemRenderer, and IListItemRenderer but still had the same results.

A quick fix I found was to intercept and cancel those mouse events in my header class.

addEventListener(MouseEvent.MOUSEOVER, onMouseOver, true );
addEventListener(MouseEvent.MOUSE
MOVE, onMouseOver, true );
...
protected function onMouseOver(event:MouseEvent) : void
{
event.preventDefault();
}

Now everything seems to work fine. But I'm still at a loss on why this happened in the first place and I worry my hack of a fix is the wrong way to do it. Has anyone successfully gotten a custom header renderer based on a container working?