Всем доброго дня.
Есть такая проблема во флексе: если я укажу в контроле DataGrid textRollOverColor и при этом буду использовать custom itemRenderer, то этот стиль будет игнорироваться.
Решается она примерно следующим образом:

Код AS3:
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%"
paddingLeft="20"
horizontalScrollPolicy="off">
<mx:Script>
<![CDATA[
import mx.controls.listClasses.ListBase;
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (owner is ListBase)
outerDocument._updateColor(ListBase(owner), data, reportName);
}
]]>
</mx:Script>
<controls1:CustomLinkButton
id="reportName"
text="{data.reportName}"
clickable="true"
width="100%"
color="#000000"
truncateToFit="true"
click="outerDocument.reportClick(data)"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>

Код AS3:
public function _updateColor(owner:ListBase, data:Object, element:UIComponent):void
{
if (owner.isItemSelected(data))
{
element.setStyle("color", owner.getStyle("textSelectedColor"));
}
else if (owner.isItemHighlighted(data))
{
element.setStyle("color", owner.getStyle("textRollOverColor"));
}
else
{
element.setStyle('color', owner.getStyle("color"));
}
}
все хорошо, но хотелось бы как-то вынести этот код в отдельный класс. Создать единственный ItemRenderer для всей таблицы я не могу, потому что в ней у каждой ячейки свой уникальный inline itemRenderer. Просто сделать компонент, тоже не получается, я не получаю доступ к переменным data и reportName.
Может у кого найдутся какие-нибудь идеи, как можно в данном случае все облагородить?
Спасибо