0

所以我需要在画布上动态地在 Actionscript 中绘制一些自定义形状(比如一些由线和圆组成的纺车)。我正在使用 Flash 生成器。

问题1: 什么会更好(更快):

  • 在画布的图形上绘制,在每一帧上清除所有内容并重新绘制?
  • 创建多个Shape对象并相应地变换它们?

问题 2: 如何相对于其中心而不是相对于其父级旋转一些 Shape?(尝试使用矩阵,但它们相对于父容器工作)。也许有一些推送弹出矩阵功能?

4

1 回答 1

2

问题 1:几乎可以肯定直接使用 Shapes 会更快。当并非所有内容都必须重绘等时,Flash Player 会更好地更新屏幕。但是,当性能成为问题时,通常最好编写一个简短的测试。

问题 2:Shapesare DisplayObjects,所以您可以只使用该rotation属性,它们将围绕其原点((0,0)点)旋转。只需确保相对于原点绘制形状,并使用其x y属性将其移动到正确的位置(例如,对于以 (70,70) 为中心的 20x20 矩形):

var rect : Shape = new Shape();
rect.graphics.beginFill(0xffffff);
rect.graphics.drawRect(-10,-10,20,20); // center it properly about (0,0)
rect.graphics.endFill();
rect.x = 70.0; rect.y = 70.0; rect.rotation = 45.0; // move and rotate
于 2012-10-10T21:37:33.860 回答