0

我正在尝试通过 Actionscript 在 FLash 中重现智利国旗。我已经得到了蓝色框和红色矩形,现在我需要弄清楚的是如何制作一个准确的起始形状来完成它。

您对通过 Actionscript 3 创建星形有什么建议吗?

到目前为止我的代码:

//blue box
var blue:Sprite = new Sprite();
addChild(blue);
blue.graphics.lineStyle();
blue.graphics.beginFill(0x0039A6,1);
blue.graphics.moveTo(0,0);
blue.graphics.lineTo(0,320);
blue.graphics.lineTo(320,320);
blue.graphics.lineTo(320,0);

//red rectanle
var red:Sprite = new Sprite();
addChild(red);
red.graphics.lineStyle(); 
red.graphics.beginFill(0xD52B1E,1);
red.graphics.moveTo(0,320);
red.graphics.lineTo(0,640);
red.graphics.lineTo(960,640);
red.graphics.lineTo(960,320);

智利国旗: 在此处输入图像描述

任何帮助将不胜感激。

4

1 回答 1

1

这不是flash,而是星星的伪代码

var outerSize = 10;
var innerSize = 5;
var rotation = 3.141592/2;
var delta = 2*3.141592/5.0;
var xpos = 100;
var ypos = 100;

for(var point=0;point<5;point++)
{
   red.graphics.moveto(outerSize * cos(delta*point + rotation) + xpos, 
                       outerSize * sin(delta*point + rotation) + ypos);
   red.graphics.lineto(innerSize * cos(delta*(point + 0.5) + rotation) + xpos, 
                       innerSize * sin(delta*(point + 0.5) + rotation) + ypos); 
   red.graphics.lineto(outerSize * cos(delta*(point + 1.0) + rotation) + xpos, 
                       outerSize * sin(delta*(point + 1.0) + rotation) + ypos);
}

如果要填充多边形,您可能需要做其他事情,但这里是多边形的坐标。

如果你要绘制很多星星,我建议预先计算坐标并将它们存储在一个数组中。cos 和 sin 可能是昂贵的操作。

于 2013-07-30T18:06:27.187 回答