J'essaie de dessiner un dégradé dans Flash en utilisant beginGradientFill
et drawRect
, mais lorsque le rect tracé est partiellement en dehors des limites du parent, le dégradé n'est pas dessiné du tout.Flash: le remplissage dégradé disparaît lorsqu'il est dessiné hors des limites de son parent?
Par exemple, considérons le code ci-dessous:
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();
}
Lorsque le rectangle en cours se trouve dans les limites de container
, tout fonctionne:
Cependant, si le rectangle se trouve à l'extérieur des limites du conteneur, le gradient n'est pas dessiné du tout. Par exemple, si le code est remplacé par:
...
var x:Number = 10;
var y:Number = 10;
...
Ensuite, le gradient disparait:
court de faire le calcul nécessaire pour dessiner la boîte à l'intérieur des limites de la société mère (et la fixation en haut du dégradé, cela semble correct), y a-t-il un moyen de gérer cela?