2010-07-13 33 views
1

我有一個小的動作腳本圖表,這意味着要實時更新,並且還能夠支持超過10000點的數據。如果我們希望添加的新行不擴展該圖表的邊界,則它現在的設置方式不需要重新繪製整個圖表。在動作中強制更小的重繪區域

但它確實,重繪區域顯示整個圖表正在重繪,而不是我需要添加的單線。

當圖表中獲取數據的,從它的下面。(有些東西已被剝離爲清晰起見,JavaScript的一個新的作品。

private function registerJSCallbacks() : void 
{ 
    ExternalInterface.addCallback("addData", addData); 
} 

private function addData(val : *) : void 
{ 
    trace("addData",val); 
    var g: Graphics = this.graphics;  
    g.moveTo(x1,y1); 
    g.lineTo(x2,y2); 
} 

有沒有更好的方式來做到這一點,不會重繪整個屏幕?是我的編碼模式錯了此類型的更新?

我是新手所以即使隱約相關的建議,將不勝感激。

回答

2

您正在編輯的矢量基礎,所以它必須重新繪製整個事情,你有幾個選項:

  1. (簡單):產生一個新的Sprite每X平局操作之後,讓每一個借鑑,只有重新計算幾矢量線

  2. (更復雜):使用一個雪碧繪製,每一個X繪製操作,將精靈中的圖形寫入後臺BitmapData對象(使用bitmapData.draw)並清除精靈。

選項2可能表現比選項1更好,但我沒有對這種特定情況進行基準測試。如果您在選項1中的每個Sprite上使用sprite.cacheAsBitmap = true,則當您移動到新的「活動」精靈時,您可能會獲得相當的性能。

+0

謝謝,花了一些小把戲來正確工作,但現在它奇妙地工作。 – 2010-07-13 19:17:33