2010-04-14 65 views
1

我试图让这个SVG形状(忽略彩色背景,只是X形)X(关闭)形状

Close SVG Path

,但没有插图,也不会知道如何使用它。

有人可以帮助一般的想法,或指向我的替代品。我在flex中使用它。

回答

1

这样做的便宜和简单的方法是获得一张方格纸并标出一个16x16(或其他尺寸)正方形块。沿着块的顶部和左侧写入数字0-15,每个数字对应一个小方块。

然后画出你的身影(这里是一个X),从其中一个方格开始,并且不要从纸上抬起你的笔,继续它的轮廓直到你回到起点。 (这不一定是完美的,或者甚至是非常好的绘图。)

接下来,制作一条线改变方向的点的列表。这些是您将用于绘图的节点。

让我们使用这种方法在大块左上角绘制一个简单的向下指向的三角形。从0,0开始,直到0,7,此时您转动并继续行到3,3,然后再次转动并继续回到0,0并停止。现在

,你有一个点的数组:

[new Point(0,0), new Point(0,3), new Point(3,3), new Point(0,0)]; 

使用图形的方法,对象,你可以做到以下几点:

private function drawInvertedTriangle():void { 
    var aryPoints:Array = [ 
      new Point(0,0) 
     , new Point(0,3) 
     , new Point(3,3) 
     , new Point(0,0)]; 
    var bgColor:uint = 0x0000CC; // darkish blue 
    var child:Shape = new Shape(); 
    child.graphics.beginFill(bgColor); 
    child.graphics.moveTo(aryPoints[0].x, aryPoints[0].y); 
    for (var i:int=1; i<aryPoints.length; i++) { 
     var pt:Point = aryPoints[i]; // for clarity in this sample 
     child.graphics.lineTo(pt.x, pt.y) 
    } 
    child.graphics.endFill(); 
    addChild(child); 
} 

我硬编码您的积分到该方法,但是您可以轻松地将aryPoints作为该函数的参数,在这种情况下,它将绘制任何形状,其中至少有3个元素的数组。

现在,为了绘制X,您需要先使用graphics.drawRoundRect()方法,然后在其上绘制X.使用Graphics类调查gradientFill和其他可用的工具。

+0

看起来这或多或少是我必须要做的。感谢您的努力。 – danke 2010-04-14 17:11:55