2013-05-30 142 views

回答

0

經過多方努力

謝謝,我發現,從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是dataProvider,它可容納新移動的點。

可能有更好的方法,但它對我有用...請告訴是否有人發現更容易..謝謝

相關問題