我试图在使用beginGradientFill
和drawRect
的Flash中绘制渐变,但是当绘制的矩形部分超出父区边界时,渐变根本不绘制。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;
...
然后梯度消失:
短做吸取母体的范围内的框所需要的数学运算(和固定的渐变,所以它看起来是正确的),有什么办法来处理这个?