Another interesting idea would be to use
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
The idea is to use an array to store the direction to move for every spot to get to the target with the shortest distance. It's just as easy to have more than one target so it's good for many objects that need to find a path to the same set of targets.
So after the array is calculated objects can move to the closest target by just referencing the direction of the square it's currently on.
https://dl.dropboxusercontent.com/u/542 ... eSpot.capx
In the example I made the objects accelerate toward the direction instead of just setting the direction. The result was nice rounded turning.
It caused a stall if I calculated the array all at once, so I adjusted it to only calculate a bit at a time.