AS3 - 如何复制sprite的sprite/graphics?

n4p*_*mer 4 flash graphics clone sprite actionscript-3

假设我的2D级别是由2D块构建的.其中一些是盒子.

盒子看起来一样.没有不同!如何将一个盒子的图形"复制"或克隆到另一个盒子?该唯一的区别盒子将是sprite.xsprite.y具有不同的值.我可能会那样:

public static function drawBox(graphics:Graphics):void
{
    graphics.clear();
    // draw box
}

drawBox(box1.graphics);
drawBox(box2.graphics);
drawBox(box3.graphics);
Run Code Online (Sandbox Code Playgroud)

不会使用纹理,只有矢量绘图!

这是一个好习惯吗?还有另一种方法可以达到同样的目的吗?


更新:有时我会随机绘制精灵(如果我需要一个精灵及其所有属性的许多实例,很难重绘它们).

put*_*nde 7

你可以使用这个功能copyFrom.

像这样的东西:

var s:Sprite = new Sprite();
s.graphics.beginFill(0);
s.graphics.drawRect(0, 0, 100, 100);
s.graphics.endFill();
addChild(s);

var s2:Sprite = new Sprite();
// Copyfrom accepts a `Graphics` object.
s2.graphics.copyFrom(s.graphics);
s2.x = 100;
s2.y = 100;
addChild(s2);
Run Code Online (Sandbox Code Playgroud)

查看有关copyFrom()的文档.