0

我不知道有什么更好的方法来问这个问题。

如果运行以下代码(我知道 cData 部分在预览中不可见,某些原因会导致它被忽略)。

结果不能正确表示数据。1. Flex 忽略 DECKER 的缺失日期 8 月 24 日。2. 它错误地将 42.77 关联到 23-Aug 而不是 24-AUG。

flex中有没有办法,其中x轴是所有可用点的联合?

以下代码完全来自: Adobe 网站链接

我只评论了 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 引号而不是 // 是否可以解决问题?我认为编译器认为你的数组集合都是一行(不管换行符),所以你可能无法在其中使用 // 样式引号。

于 2010-05-25T18:01:23.640 回答
0

经过多方搜索,

上述来源使用了 2 个不同的数据源和 2 个不同的系列。每个数据源都与一个系列相关联。因此,数据源:系列之间存在 1:1。

然而,

接缝的公认方法是使用一个数据源和两个系列。数据源有一个与每个系列相关联的字段。因此,dataField : series 之间存在 1:1。

我使用第二种方法解决了这个问题,但这意味着我们必须手动构建具有正确值的单个数据源。

于 2010-12-20T15:51:55.780 回答