A soap film is so thin that the wavelength of visible light is comparable and this causes iridescence -- light is reflected from both the inner and outer surface of the film . But it is not perfectly uniform, and at any time, consists of an ever changing thickness as wind currents and gravity disturb the molecules. Each thickness refracts light differently, sending various wavelengths into your eye, while others head off into a different direction, so your viewing angle is what affects the colour you see from any particular place in the bubble. The light before it is refracted is 'white light' -- that is, consists of all visible colours (and more), and the light that leaves does so spread out spatially. For this reason, from any particular viewing angle, you see several colours, and these move about as the thickness is not constant in time.