Sweet 3D effect:
(this is done in c++ not flash, but it's easily compatible with flash)
Each spike is stored as a 3D vector (x, y, z). Every frame, the spikes are rotated around the Z axis by the ball's x speed and rotated around the X axis by the ball's yspeed (ball's speed * pi / 180 * width actually, for arc lengths). The spikes are an animation that shows them going from center facing out to center facing in, with a masking effect so that they appear underneath when they're behind the ball.
Rotation is calculated by taking the atan2 between the flattened 3D vector (turn to 2D by cutting out z component). The rotation of each spike is this number. Then the frame of animation it's on is the angle between the Z axis and the vector (0 to 180, divide by the number of frames).
You get all the charm of 2D with all the awesome of 3D.