1

在 Flash 中,您可以将在 Flash IDE 中绘制的 MovieClip 嵌入到 SWF 中,然后使用其类路径创建它的实例,例如car = new Car(). 就代码执行时间或渲染时间而言,此类嵌入式资产是否比使用绘图 API(即 , moveTo)慢?lineTo

我在互联网上到处搜索,但没有发现可以详细说明这个问题。除了这篇SO 帖子说“使用绘图 API 来加快代码执行速度”。

当然,渲染成位图并在以后重新使用它是最快的,但在某些时候,您需要将矢量图形渲染成位图并使用上述方法之一。

你知道哪个更快,为什么?

4

1 回答 1

1

无论来源如何,任何矢量资产都必须在显示列表的舞台失效信号渲染上绘制和重绘。

我不相信通过 Flash Pro 画板的创作工具会转化为显着的优化。比看起来更复杂的是,时间线图层元素组、阴影、渐变和圆角矩形等基元等因素可能会以不同方式处理。同样,使用铅笔工具创建的线条比画笔笔划需要更少的内存。

与 Flash Catalyst 一样,我相信 Flash Pro 会单独渲染每个矢量,因此复杂的对象会大大降低已发布应用程序的性能。符号应该用于出现多次的元素,元素应该被分组,时间线层应该将变化的元素与没有变化的元素分开。

Flash Player 10 和 AIR 1.5 提供了一个新的绘图 API,它通过减少代码执行量来实现更高的性能。这些功能包括:

  • 绘制路径()
  • 绘制图形数据()
  • 绘制三角形()

如前所述,cacheAsBitmap可以提高翻译性能;但是,在缩放或旋转时会重新绘制。

光栅位图资源几乎总是会产生最高性能。用于动画的位图/位位图和位图精灵表等技术将优于矢量绘图。

在我的应用程序中,我经常实施的一种技术是矢量资产的后台渲染,如 StackOverflow 帖子所示:AS3 Blitting - Copy Pixels getting some of the source image

使用这种方法可以缩放矢量资产;但是,只有位图会添加到显示列表中。

不特定于图形渲染性能,应注意使用动态类ShapeSprite将产生较小的性能改进。MovieClip

于 2013-05-02T03:03:34.960 回答