I've been working to reverse engineer the Adidas game, that is located at:
http://www.adidas.com/campaigns/aumatchball/content/I am working on a game myself, but can't disclose the details until June 1. The reason I, and many others are interested in it, is because Adidas managed to work around the problem that exists right now where the only supported communication between browser and GE is one-way, from GE to the browser. There is an "unfinished, undocumented, unsupported" API being worked on by Google, but needless to say, I wouldn't depend on it.
So, here is what I know so far:
(1) Two network links are created (a) ?action=createPlacemarkKml which refreshes onStop with 0sec delay, and has flytoview=0 and refreshview=0 and (b) ?action=updateCurrentLocation which refreshes onInterval of 1sec and onStop of 1,000,000 sec (essentially not at all, and has flytoview=1 and refreshview=1)
(2) A link is created in a placemark called "Start Game" and a screen overlay directs people to click it. This opens the web browser pane and starts the Flash movie.
(3) The Flash movie calls ?action=setDestinationLocation which apparently stores the destination coordinates in the session.
At the same time, the ?action=updateCurrentLocation networkLink is busily being called once a second and returns only an empty kml container. It is receiving all coordinate information from the GE application however.
In addition, every 10 sec or so, ?action=createPlacemarkKml is called which returns the kml involved in setting the location. Because of the flytoview setting, you are taken to the lookAt position if you are not there already.
(4) I originally thought that it seemed to fly you as soon as you clicked the Flash movie which implied some way to initiate the ?action=createPlacemarkKml call on demand. But I just tested it, and the destination was set at 8:44:47 and the updated kml wasn't issued until 8:44:56. So, just like the method of communicating through the session to give the illusion of control, they're cheating the system a little. They're doing a magician trick... playing a transition in Flash that occupies your attention until the move happens.
What I don't understand is, what the 1sec refresh is for, because I replicated the functionality without that networkLink at all.
One issue I encountered for my purposes is, due to FlyToView, if you try to navigate somewhere, you are pulled back to the location you are Look[ing]At. I solved this for the most part, by updating LookAt with the LookAt values returned when the movement stops (onStop). The only problem is that only about 3 decimal places are returned and GE uses 6 or more, so if I stop at say -37.819643 it will slowly move me back to -37819600. Unfortunately, I see no way around this.
Incidently, when you copy locations from GE it uses up to 14 decimal places. It is a real limitation that it returns only 3 for our purposes. I had a test page I built that displayed a box on the screen based on the coordinates returned to top-right and bottom-left, and when you're far away it works fine, but if you get in close, all kinds of strange things start to happen to it. Since I am choosing to display or not display items based on those coordinates, this is a problem, but I guess I'm stuck setting a minimum height as well as a maximum one where the items can be seen so as to minimize the effect. You could argue the limitation began with the whole lat/long coordinate system where we have at most 360 increments to describe huge distances, but we can't very well change that now!
Hope this helps...
Michael