Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flex图形中每个形状的单独填充_Actionscript 3_Apache Flex_Graphics_Drawing_Flex3 - Fatal编程技术网

Actionscript 3 Flex图形中每个形状的单独填充

Actionscript 3 Flex图形中每个形状的单独填充,actionscript-3,apache-flex,graphics,drawing,flex3,Actionscript 3,Apache Flex,Graphics,Drawing,Flex3,我在一个精灵上画了两个水平行中的一组圆,我想对每个圆单独应用一个渐变,但是flex将它应用到整个图形区域。我需要改变什么来绘制每个具有自己梯度的圆 var s:Sprite = new Sprite(); var g:Graphics = s.graphics; g.beginBitmapFill(bd, new Matrix(), false, false); g.drawRect(0, 0, s.width, s.height); g.endFill(); var m:Matrix = ne

我在一个精灵上画了两个水平行中的一组圆,我想对每个圆单独应用一个渐变,但是flex将它应用到整个图形区域。我需要改变什么来绘制每个具有自己梯度的圆

var s:Sprite = new Sprite();
var g:Graphics = s.graphics;
g.beginBitmapFill(bd, new Matrix(), false, false);
g.drawRect(0, 0, s.width, s.height);
g.endFill();
var m:Matrix = new Matrix();
g.lineStyle(1, 0x888888, 1);
for(var i:int = 0; i < numSpirals; i++) {
    g.beginGradientFill(GradientType.LINEAR, [0x666666, 0xFFFFFF], [1, 1], [0, 255], m);
    xc = i * spiralWidth + spiralHoleRadius;
    yc = bdCenter - (spiralBoxHeight / 2) + (spiralHoleRadius / 2);
    g.drawCircle(xc, yc, spiralHoleRadius);
    g.endFill();
}
for(i = 0; i < numSpirals; i++) {
    g.beginGradientFill(GradientType.LINEAR, [0x666666, 0xFFFFFF], [1, 1], [0, 255], m);
    xc = i * spiralWidth + spiralHoleRadius;
    yc = bdCenter + (spiralBoxHeight / 2) - (spiralHoleRadius / 2);
    g.drawCircle(xc, yc, spiralHoleRadius);
    g.endFill();
}

下面是这个网站上的一个类似问题,也许这有助于我不能发表评论,所以我把它放在一个答案中

经过反复尝试,我终于能够从这个问题/答案中推断出解决方案。事实证明,我需要创建一个新的矩阵,并将“createGradientBox”分别应用于每个圆的矩阵。
    m = new Matrix();
    m.createGradientBox(spiralHoleRadius * 2, spiralHoleRadius * 2, 0, xc - spiralHoleRadius / 2, yc - spiralHoleRadius / 2);