在我的Actionscript程序中,我使用以下方法绘制多边形:
this.graphics.moveTo()
和
this.graphics.lineTo()
在多边形模型的更新功能中,我稍微更改了一下,然后重新绘制它。最终,每次调用update()
函数都会绘制更新的多边形,我可以看到它发生了变化。
在程序的某些方面,我希望能够将此多边形用作movieclip
,所以我
可以附加一个面具 - 所以当一次又一次地绘制多边形时,我可以看到一个很好的
那个多边形形式的背景,填充它。
问题是 - 我不知道如何获取这个点数组,这是我的多边形表示,并把它变成一个movieclip(如果可能的话......)
如果您有任何其他建议如何实施上述内容,那就太棒了。
答案 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。