我有一个 flex plotchart,我需要一个动画,使我能够将数据点从一个位置移动到另一个位置。还必须显示实际运动。
我试过移动控制,但调用 play() 不起作用。
任何提示也会有很大帮助..
提前致谢
经过一番努力,我发现将点从 1 个点移动到另一个点的一种方法是让它沿着直线的方程移动,并在一段时间后渲染图形上的中间点......
我会分享代码...
将以下行放在要开始移动的位置:
setTimeout(showLabel,singleDuration,oldLocation,newLocation,
Constants.TOTAL_STEPS,1,oldLocation.x, oldLocation.y, singleDuration);
这是函数定义:
private function showLabel(oldLoc:Object newLoc: Object, totalSteps: Number,
count:Number, currentX: Number, currentY: Number, singleDuration: Number): void{
tempArrColl = new ArrayCollection();
var tempObj: Object= new Object();
xDelta = 0.25;
yDelta = 0.25;
tempObj.x = currentX + (xDelta * count);
tempObj.y = currentY + (yDelta * count);
if ((tempObj.x >= newLoc.x) || (tempObj.y >= newLoc.y)){
tempObj.x = newLoc.x;
tempObj.y = newLoc.y;
callLater(showPoint,[tempObj]);
tempArrColl = new ArrayCollection();
plotGraphArrayColl.addItem(newLoc);
return;
}
callLater(showPoint,[tempObj]);
count++;
setTimeout(showLabel, singleDuration, oldLoc, newLoc,
totalSteps, count, tempObj.x, tempObj.y, singleDuration);
}
private function showPoint(loc: Object): void {
tempArrColl.addItem(loc);
plotChart.validateNow();
}
这里, tempArrColl 将保存沿线方程的中间点。将其作为数据提供者放在图表上的一系列中,然后在移动所有点后将其删除。plotGraphArrayColl 是保存新移动点的数据提供者。
可能有更好的方法,但它对我有用......请告诉是否有人找到更容易的东西......谢谢