我在使用dateTimeAxis作爲橫軸放大折線圖時出現問題。我想放大和縮小,通過使用滑塊設置dateTimeAxis的最小和最大屬性。日期標籤會根據情況發生變化,但當我設置最小值或最大值時,線條消失。柔性折線圖縮放
下面的代碼的一部分,我有:
private function updateBoundariesFromSlider():void
{
leftBoundary = slider.values[0];
rightBoundary = slider.values[1];
updateMainData();
}
private function updateMainData():void
{
dateAxis.minimum = new Date(leftBoundary);
dateAxis.maximum = new Date(rightBoundary);
}
public function setChartData(data:XML, shown:Array, minDate:Date, maxDate:Date):void
{
globalLeftBoundary = minDate.getTime();
globalRightBoundary = maxDate.getTime();
leftBoundary = minDate.getTime();
rightBoundary = maxDate.getTime();
for each(var s:String in shown)
{
var localXML:XMLList = data.track.(type == s);
// Create the new series and set its properties.
var localSeries:LineSeries = new LineSeries();
localSeries.dataProvider = localXML;
localSeries.yField = "value";
localSeries.xField = "time";
localSeries.displayName = s;
mySeries.push(localSeries);
}
hAxis = new DateTimeAxis();
hAxis.dataUnits = "minutes";
hAxis.dataInterval = 1;
hAxis.labelFunction = showLabel;
hAxis.alignLabelsToUnits = true;
hAxis.parseFunction = createDate;
//hAxis.minimum = new Date(leftBoundary);
//hAxis.maximum = new Date(rightBoundary);
Alert.show((new Date(leftBoundary)).toString());
dateAxis = hAxis;
}
private function createDate(s:String):Date {
var dateTime:Array = s.split(" ");
var date:Array = dateTime[0].split("-");
var time:Array = dateTime[1].split(":");
var newDate:Date = new Date(date[0],date[1],date[2],time[0],time[1],time[2]);
return newDate;
}
<mx:LineChart id="lineChart" left="10" top="10" bottom="47" right="10" series="{mySeries}" horizontalAxis="{dateAxis}" />
<mx:Legend dataProvider="{lineChart}" height="23" bottom="16" left="10" id="legend" width="100"/>
<flexlib:HSlider id="slider" height="25"
allowTrackClick="true" allowThumbOverlap="false"
liveDragging="true" change="updateBoundariesFromSlider()"
showDataTip="false"
showTrackHighlight="true"
thumbCount="2" snapInterval="0"
values="{[leftBoundary, rightBoundary]}"
minimum="{globalLeftBoundary}" maximum="{globalRightBoundary}"
right="50" left="198" y="155"
/>
問題是我有我的數據在xml中,而不是ArrayCollection :( – Biroka 2010-06-29 15:35:58
數組集合包裝一個數組,一個XMLListCollection包裝一個XMLList。都是ListCollectionView的,並且都可以tak e過濾功能。我已經更新了上面的示例以使用XMLListCollection而不是ArrayCollection。 – 2010-06-29 17:13:02
爲什麼人們不喜歡FLEX的答案?顯然FLEX的開發人員正忙着拔出頭髮來取悅任何東西! LOL – D3vtr0n 2010-11-05 17:13:05