0

私はこの質問をするためのより良い方法を知りません。

以下のコードを実行すると(cDataセクションがプレビューに表示されないことがわかっているので、何かが原因で無視されます)。

結果はデー​​タを正しく表していません。1. Flexは、DECKERの8月24日の欠落した日付を無視します。2.42.77を8月24日ではなく8月23日に誤って関連付けます。

x軸がすべての利用可能なポイントの和集合であるフレックスの方法はありますか?

以下のコードは完全に次のものからのものです: AdobeWebサイトのリンク

コメントしたデータポイントは2つだけです。// {date: "23-Aug-05"、close:45.74}、および// {date: "24-Aug-05"、close:150.71}、

<?xml version="1.0"?>

 [Bindable]
  public var SMITH:ArrayCollection = new ArrayCollection([
    {date:"22-Aug-05", close:41.87},
    //{date:"23-Aug-05", close:45.74},
    {date:"24-Aug-05", close:42.77},
    {date:"25-Aug-05", close:48.06},
 ]);

 [Bindable]
  public var DECKER:ArrayCollection = new ArrayCollection([
    {date:"22-Aug-05", close:157.59},
    {date:"23-Aug-05", close:160.3},
    //{date:"24-Aug-05", close:150.71},
    {date:"25-Aug-05", close:156.88},
 ]);

[Bindable]
public var deckerColor:Number = 0x224488;

[Bindable]
public var smithColor:Number = 0x884422;

]]>

    <mx:horizontalAxisRenderers>
        <mx:AxisRenderer placement="bottom" axis="{h1}"/>
    </mx:horizontalAxisRenderers>

    <mx:verticalAxisRenderers>
        <mx:AxisRenderer placement="left" axis="{v1}">
            <mx:axisStroke>{h1Stroke}</mx:axisStroke>
        </mx:AxisRenderer>
        <mx:AxisRenderer placement="left" axis="{v2}">
            <mx:axisStroke>{h2Stroke}</mx:axisStroke>
        </mx:AxisRenderer>
    </mx:verticalAxisRenderers>

    <mx:series>
       <mx:ColumnSeries id="cs1" 
            horizontalAxis="{h1}" 
            dataProvider="{SMITH}" 
            yField="close" 
            displayName="SMITH"
        >
            <mx:fill>
                <mx:SolidColor color="{smithColor}"/>
            </mx:fill>

            <mx:verticalAxis>
               <mx:LinearAxis id="v1" minimum="40" maximum="50"/>
            </mx:verticalAxis>           
       </mx:ColumnSeries>           
       <mx:LineSeries id="cs2" 
            horizontalAxis="{h1}" 
            dataProvider="{DECKER}" 
            yField="close" 
            displayName="DECKER"
        >
            <mx:verticalAxis>
                <mx:LinearAxis id="v2" minimum="150" maximum="170"/>           
            </mx:verticalAxis>

            <mx:lineStroke>
                <mx:Stroke 
                    color="{deckerColor}" 
                    weight="4" 
                    alpha="1"
                />
            </mx:lineStroke>
       </mx:LineSeries>
    </mx:series>
 </mx:ColumnChart>
 <mx:Legend dataProvider="{myChart}"/>

4

2 に答える 2

0

//ではなく/** / style quotesに切り替えると、問題は解決しますか?コンパイラは、配列コレクションが(改行に関係なく)すべて1行であると見なしているため、//スタイル引用符を使用できない場合があると思います。

于 2010-05-25T18:01:23.640 に答える
0

いろいろ探した結果、

上記のソースは、2 つの異なるデータソースと 2 つの異なるシリーズを使用しました。各データソースは 1 つのシリーズに関連付けられています。したがって、datasource : series 間に 1:1 があります。

でも、

1 つのデータ ソースと 2 つのシリーズを使用するのが一般的な方法です。データソースには、各シリーズに関連付けられた 1 つのフィールドがあります。したがって、dataField : series 間には 1:1 があります。

私は 2 番目の方法を使用して問題を解決しましたが、これは正しい値を使用して単一のデータソースを手動で構築する必要があることを意味します。

于 2010-12-20T15:51:55.780 に答える