クラスのdataTipRenderer
スタイルがデフォルトで.ChartBase
DataTip
DataTip
であるIDataRenderer
ため、レンダラーとして機能できます。ただし、メソッドDataTip.updateDisplayList(w,h)
はデータ ポイントに円を描画しません。内部に HTML 対応のテキストを含む四角形を描画します。
では、とらえどころのないブルズアイを描くのは何でしょうか?
今、私はいくつかの掘り下げ、いくつかの非常に深い掘り下げを行い、答えを見つけました. 他の人のためにここにそれらを文書化します。
私の SDK のバージョンは4.1.0です。
ホバー時に円のデータ ポイントをレンダリングするコード (デフォルト) は、私たちが考えていたようなレンダラーではありませんが、実際にはmx.charts.chartClasses.ChartBase
クラス内の関数です (3873 行目)。
/**
* Defines the locations of DataTip objects on the chart.
* This method ensures that DataTip objects do not overlap each other
* (if multiple DataTip objects are visible) or overlap their target data items.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
protected function positionDataTips():void
positionAllDataTips()
同じクラスに同様の機能があります。
には単純なブール スタイルがありChartBase
、showDataTipTargets
false に設定すると、ホバリング時に線上の円の描画が無効になります。
datatip ターゲットは のpositionDataTips()
関数内でレンダリングされますChartBase
(4204 行目から)。
showDataTipTargets
それがこれに関連していることがわかったら、別の質問に答えることができました。そこでは、カスタマイズ方法の詳細な説明を見つけることができますDataTipTarget
ブール値のChartBase
プロパティ はshowDataTips
、datatip BOXES のみのレンダリングを切り替えます。それらは style を使用してレンダリングされdataTipRenderer
、 datatip ボックスのテキストは property を使用して作成されますdataTipFunction
。
要約すると、グラフの DataTips は次のように理解できます。
ChartBase.getStyle("showDataTipTargets"):Boolean
ポイントにカーソルを合わせるとレンダリングされるデフォルトの円の可視性を切り替えます。
- DataTip ターゲットのレンダリングを実際に変更するには、
ChartBase.positionDataTips()
関数での描画方法をオーバーライド/変更する必要があります
- DataTip ボックスは個別に処理されます
ChartBase.showDataTips:Boolean
チャート全体の DataTips と DataTipTargets の表示を切り替えます
ChartBase.getStyle("dataTipRenderer"):Class
DataTip ボックスのグラフィカル レンダリングのみを処理します。
- は
dataTipRenderer
、 によって返された文字列を使用しChartBase.dataTipFunction:Function
てデータを表示します。
- 従うべき規則は次のとおりです。
- カスタム
dataTipRenderer
は、DataTip のグラフィックス/描画を処理する必要があります
- カスタム
dataTipFunction
は、特定のポイントのデータのテキストの書式設定を処理する必要があります
- DataTipTarget から DataTip ボックスに描画されるオプションの線である吹き出し線は、設定によって有効化およびカスタマイズできます
ChartBase.getStyle(“dataTipCalloutStroke”):IStroke
。