【发布时间】:2010-11-20 06:34:54
【问题描述】:
我正在尝试使用 beginGradientFill 和 drawRect 在 Flash 中绘制渐变,但是当绘制的矩形部分超出父级边界时,根本不会绘制渐变。
例如,考虑下面的代码:
function testGradient():void {
var g:Graphics = container.graphics;
var width:Number = container.width;
var height:Number = container.height;
var y:Number = 0;
var x:Number = 0;
var ratios:Array = [255 * y / height, 255 * (y + height) / height];
g.beginGradientFill(GradientType.LINEAR, [0xFF, 0xFF], [0.6, 0],
ratios, null);
g.lineStyle(1, 0xFF0000);
g.drawRect(x, y, width, height);
g.endFill();
}
当正在绘制的矩形位于container 的范围内时,一切正常:
但是,如果矩形位于容器边界之外,则根本不会绘制渐变。例如,如果代码改为:
...
var x:Number = 10;
var y:Number = 10;
...
然后渐变消失:
没有进行在父边界内绘制框所需的数学运算(并修复渐变以使其看起来正确),有什么方法可以解决这个问题吗?
【问题讨论】: