Applying a gradientFill to an animated sprite?

I was working through some animation tutorials with plain round sprites using the following code…

package {
import flash.display.Sprite {

public class Ball extends Sprite {
private var radius:Number;
private var color:uint;
public var vx:Number = 0;
public var vy:Number = 0;
public var mass:Number = 1;

public function Ball(radius:Number=40, color:uint=0xff0000) {
this.radius = radius;
this.color = color;
init();
}

public function init():void {
graphics.beginFill(color);
graphics.drawCircle(0,0, radius);
graphics.endFill();
}
}
}

I would like to add a little more depth to the ball class by using a gradient fill instead of a solid color to make it appear somewhat more 3D. But it seems more complicated than I first thought it would be. Specifically, I am having trouble when trying to position the gradient using…

var matrix:Matrix = new Matrix();
matrix.createGradientBox(... )  

… as the ball class is loaded by other programs and doesn’t really need to know its position on the stage at any time. Can I just apply the gradient over the entire ball without having to know where it is? Also there are usually several instances of Ball being used at the same time.

Any tips would be appreciated.