从另一个对象创建一个MovieClip

时间:2011-07-11 15:10:36

标签: actionscript-3

在我的Actionscript程序中,我使用以下方法绘制多边形:

this.graphics.moveTo()

this.graphics.lineTo()

在多边形模型的更新功能中,我稍微更改了一下,然后重新绘制它。最终,每次调用update()函数都会绘制更新的多边形,我可以看到它发生了变化。

在程序的某些方面,我希望能够将此多边形用作movieclip,所以我 可以附加一个面具 - 所以当一次又一次地绘制多边形时,我可以看到一个很好的 那个多边形形式的背景,填充它。

问题是 - 我不知道如何获取这个点数组,这是我的多边形表示,并把它变成一个movieclip(如果可能的话......)

如果您有任何其他建议如何实施上述内容,那就太棒了。

2 个答案:

答案 0 :(得分:0)

您可以创建一个新的MovieClip并使用它的图形进行绘制。所以不要使用this.graphics.moveTo / lineTo,试试这个:

var mc:MovieClip = new MovieClip();

mc.graphics.moveTo(...);
mc.graphics.lineTo(...);

this.addChild(mc);

一种方便的绘图方式,如果你想输入更少,就是做这样的事情:

var mc:MovieClip = new MovieClip();

with(mc.graphics) {
    clear();
    lineStyle(...);
    moveTo(...);
    lineTo(...);
    ...
    ect.
}

this.addChild(mc);

答案 1 :(得分:0)

我建议你看看Point类。例如,

var p1:Point = new Point(100,150);

然后你可以有一个点数组

var arrPoints:Array = new Array(p1,p2,p3);

使用for循环,您可以决定i == 0是否使用moveTo,其余使用lineTo。最后可以有一个特殊条件来关闭多边形,i == arrPoints.length-1。

因此,基本上创建一个movieclip对象,使用其graphic属性将其填入您在数组中定义的点。只要您的点位于动画片段中,就可以屏蔽它。最后,你使用的“这个”符号可能指的是舞台的主要动画片段。

var mc:MovieClip = new MovieClip();
mc.graphics.moveTo(p1.x,p1.y);

将您的图形绘制到您的mc。