Actionscript 3 Flex图形中每个形状的单独填充
我在一个精灵上画了两个水平行中的一组圆,我想对每个圆单独应用一个渐变,但是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
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);