The JSL below creates two bitmaps: a rainbow-colored background and a Mandelbrot shaped mask. The two bitmaps are added to a graph and the rainbow is moved around under the mask. It's very fast because the bitmaps are only created once and the OS provides support for the mask's transparent hole.
The transparent hole in the mask is created with the alpha layer, which is similar to the red, green, and blue layers. Alpha is a number between zero and one that determine how transparent/opaque a pixel is when rendered on top of a previously drawn pixel. In this example, alpha is zero (transparent) or one (opaque). You can blend bitmaps with intermediate values.
This inline version of the JSL was tweaked for making the bitmaps for the video. The attached file might look a little better as it runs because it uses the timer to determine what frame to show next.