最終的には、私が試していたもの (アイテム レンダラーにソート部分全体を描画させる) よりもはるかに単純でしたが、2 つの非常に軽量なレンダラーを作成する必要があったため、それでもかなり複雑でした。シーケンス番号を 1 つの色のままにすることもできましたが、少し凝って、マウス オーバー カラーと通常の色を使用することにしました。
ヘッダー レンダラー (ubicAdvancedDataGridHeaderRenderer.mxml) は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<mx:AdvancedDataGridHeaderRenderer xmlns:mx="http://www.adobe.com/2006/mxml"
color="{ColourGlobals.TEXT_AGAINST_DARK}"
mouseOver="bMouseOver = true" mouseOut="bMouseOver = false">
<mx:Script><![CDATA[
public var bMouseOver:Boolean = false;
]]></mx:Script>
</mx:AdvancedDataGridHeaderRenderer>
並べ替えレンダラーは次のとおりです。
package assets.GridTools {
import mx.controls.advancedDataGridClasses.AdvancedDataGridSortItemRenderer;
public final class ubiAdvancedDataGridSortItemRenderer extends AdvancedDataGridSortItemRenderer {
override protected function commitProperties():void {
super.commitProperties();
const oHeader:ubicAdvancedDataGridHeaderRenderer = owner as ubicAdvancedDataGridHeaderRenderer;
label.textColor = oHeader.bMouseOver ? ColourGlobals.DARK : ColourGlobals.TEXT_AGAINST_DARK;
}
}
}
1 つの Flex ともう 1 つの AS を作成した理由を聞かないでください。それは機能するので、壊れていないので、修正するつもりはありません。