1

フレックス グラフを表示するように求められると、外部ソースから最小時間と最大時間を取得するため、DateTimeAxisを使用して時間 (x) 軸を表示します。labelUnitsこのため、とをハードコーディングすることはできませんintervalが、デフォルトの実装では、何かが必要です。DateTimeAxis の自動構成に役立ちlabelUnitsintervalより便利なライブラリを知っている人はいますか?

次の例では、最初のラベルを 01:04 に、次のラベルを 01:18 に配置します。何?01:15 と次の 01:30 が使いやすいでしょう。を入れると、01:04 と01:19interval="15"になり、あまり良くありません。

これが完全な例です。labelUnits(これらminimumを省略するとmaximum、ラベルがまったくなくなるので、入れます):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal">
    <mx:DateFormatter id="df" formatString="JJ:NN:SS" />
    <mx:Script>
        <![CDATA[
            private const minimum:Date = new Date( "Apr 1 2011 01:03:54 AM");
            private const maximum:Date = new Date( "Apr 1 2011 03:07:54 AM");
            private function labelFunction(item:Object,
                                           field:String,
                                           index:Number):String {
                return df.format(item as Date);
            }
        ]]>
    </mx:Script>

    <mx:CartesianChart width="600" height="200">

        <mx:horizontalAxis>
            <mx:DateTimeAxis
                minimum = "{minimum}"
                maximum = "{maximum}"
                displayLocalTime="true"
                labelFunction="labelFunction"
                labelUnits="minutes"
            />
            <!--
                interval="15"
            -->
        </mx:horizontalAxis>

    </mx:CartesianChart>

</mx:Application>

これを与えるフレックススクリーンショット

labelUnits車輪を再発明して計算し、以下にinterval基づいて計算する必要はありません。

  • 最小時間と最大時間
  • グラフの幅
  • フォントサイズ
  • 他に何か?

だから私は何かを逃したか、AutoDateTimeAxisまたはそのような実装を見逃したことを願っています.. ;-)何か知っていますか?

4

1 に答える 1

1

DateTimeAxis で同様の問題が発生し、代わりにカテゴリ軸を使用して、カスタム ラベル関数を使用して日付ラベルをフォーマットしました。

夏時間にも同様のバグがあり、範囲が DST と DST 以外の両方にまたがる場合、頭をもたげます。オーバーラップの余分な/欠落した時間が原因で、間隔は決して一致しません。

于 2011-09-01T05:31:45.910 に答える