Common Colour- Individual Control

I had an idea for a project, requiring the driving of a large number of RGB LEDs, and I had an idea for how to drive them. I need individual control of them, but they can all be the same colour. What I was thinking, is I could have a common V+ feed to every LED for each colour, controlled by an arduino PWM pin, and probably a transistor for high current. Then, I could use shift registers (or a similar pin number expansion technique) to individually link the cathodes to ground, switching on LEDs.

Would this work, and is there a better way of doing it? Thanks very much in advance.

Yes it would work. However with a common + you have a common anode display. Look for the shiftPWM libary.
You need a resistor on each coloured LED.