2010-07-13 56 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