There are a number of ways that you can accomplish that.
The way that katiemelua.com did it is by using Ajax. In fact, there is no page reload. (Just look at the URL... it stays index.2 no matter which "page" you load.) You aren't really linking to a new page. Clicking a link tells Ajax to go out and get some new content to display on the bottom half of the current page. Note that while this looks really sexy, it's not search engine friendly. Also, it will work in most browsers but not some older ones. It won't work when people don't have Javascript.
You could do this with frames or iframes. Clicking a link would refresh the page in the frame (or the iframe) but not refresh the page itself. Again, this is not very search engine friendly but it would do what you're asking for.
No cookies or sessions would be necessary for either of those two options.
- The third way would be very search engine friendly... and it would work fine (as long as the user has Javascript - which most people do)... but there would be a hiccup in the Flash each time the user links to a new page. What you could do would be to put links on your page that link to new pages but you also put a Javascript onClick event on each link that does the following: (A) ask flash how far the movie has played so far, (😎 set a cookie from Javascript recording how much of the movie the user has seen so far, (C) link to the new page, and (D) write the header so that when it loads the flash movie, to pass in a parameter that it finds in the cookie. The Flash movie would know that it needs to start up 3 mins, 27 seconds into the movie instead of starting at the beginning. [Note that step B could also be done by using Ajax to record this data in a session on the server].
The third option is my favorite because my clients are always concerned about search engine results... but stopping the movie and restarting it on the next page isn't really the smooth effect that you are looking for.
Also, frames, iframes, and Ajax populated DIV tags can work fine for web sites that you build yourself but they can be difficult to integrate with things like third party shopping carts, bulletin boards and web blogs that expect a full page refresh to function correctly.