2012-10-10 153 views
0

所以我需要动态地在画布上绘制ActionScript中的一些自定义形状(如一些由线条和圆圈组成的旋转轮)。我正在使用Flash Builder。Actionscript中的绘制形状

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

  • 在画布上绘制图形,对每一帧干净的一切,重绘?
  • 创建多个Shape对象并相应地转换它们?

问题2: 我怎么能相对旋转的一些形状到它的中心,而不是相对其父(试图与矩阵打不过他们比较工作,以父容器)?也许有一些推弹出矩阵功能?

回答

2

问题1:几乎可以肯定直接使用形状会更快。当不是所有的东西都需要重新绘制时,Flash Player会更好地更新屏幕。但是,当性能是一个问题时,最好编写一个简短的测试。

问题2:ShapesDisplayObjects,所以你可以只使用rotation财产,他们将围绕它们的起源(在(0,0)点)。只要确保你画相对于原点的形状,并使用其xy特性将其移动到合适的位置(例如,在(70,70为中心的20×20的矩形)):

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 
+0

这个答案涵盖了我所有的问题以及我需要知道的一切。非常感谢。 – user1561713