Apache flex 弹性条形图中的自定义字段

Apache flex 弹性条形图中的自定义字段,apache-flex,bar-chart,Apache Flex,Bar Chart,我使用浮动条形图来表示flex中的日程安排。数据定义如下: public var schedule:ArrayCollection = new ArrayCollection([ {task:"task1",start:6,end:9}, {task:"task2",start:11,end:12}, {task:"task3",start:14,end:17} ]); 这里的开始和结束代表任务开始和完成的

我使用浮动条形图来表示flex中的日程安排。数据定义如下:

public var schedule:ArrayCollection = new ArrayCollection([
            {task:"task1",start:6,end:9},
            {task:"task2",start:11,end:12},
            {task:"task3",start:14,end:17}
        ]);
这里的开始和结束代表任务开始和完成的时间。 我的问题是,xField(time)总是从0开始,因此我会有一个很大的空白,并且图表看起来不太好。我希望它从6开始,作为任务“task1”的开始时间。我怎么做?请帮忙。

只需使用LinearAxis的“最小”和“最大”属性。要获得实际的最小值和最大值,可以在数据提供程序中搜索它们

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" 
           minWidth="955" minHeight="600" creationComplete="init()">
<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.events.FlexEvent;

        [Bindable]public var schedule:ArrayCollection = new ArrayCollection([
            {task:"task1", start:6, end:9},
            {task:"task2", start:11, end:12},
            {task:"task3", start:14, end:17}
        ]);

        [Bindable]private var minTime:Number = 24;
        [Bindable]private var maxTime:Number = 0;

        protected function init():void
        {
            for each (var task:Object in schedule)
            {
                if (task.start < minTime)
                    minTime = task.start;

                if (task.end > maxTime)
                    maxTime = task.end;
            }
        }
    ]]>
</fx:Script>
<mx:BarChart 
    dataProvider="{schedule}" 
    showDataTips="true">
    <mx:verticalAxis>
        <mx:CategoryAxis 
            dataProvider="{schedule}" 
            categoryField="task"/>
    </mx:verticalAxis>
    <mx:horizontalAxis>
        <mx:LinearAxis minimum="{minTime}" maximum="{maxTime}"/>
    </mx:horizontalAxis>
    <mx:series>
        <mx:BarSeries 
            xField="end"
            minField="start"/>
    </mx:series>
</mx:BarChart>
</s:Application>

最大时间)
maxTime=task.end;
}
}
]]>