Panoviewer Readme This project shows the use of many interactive QT features, such as QTVR, Wired Sprites, Movie Media tracks, qtlists, and more. It demonstrates the use of the New Sprite Track Image command, new to QT 6.0, and shows how one might use wired actions and sprites to design a controller which not only looks different from the default QTVR controller, but works differently as well. For an on-line example paste the following URL into QTPlayer's "Open URL" dialog: http://www.blanpied.net/workshop/vr/japan/panoviewer.mov How the movie works: The movie itself is less than 90k, and includes only the background, the skin, the controls, and some placeholder art. As soon as it loads, the "thumbs" sprite track loads a qtlist by the name of "movies.xml" which just contains a list of movie names: blossoms02 FishMarket Gokufuji Kabukiza ueno Note that there are no ".mov" extensions on these names. Those will get added later, when they're needed. See the "FrameLoaded" handler on the sprite "list loader" in the first sample. When the xml is loaded QT creates a qtlist for the movie. Then in the second sample of the "thumbs" sprite track the "thumb loader" sprite loads each of the thumbs by getting the names from the qtlist and tacking the string ".jpg", resulting in relative URLs for the Sprite Track New Image call (LoadNewImage in LSP's QScript). This is done in an idle handler to space out the loads and image assignments a bit in time. Note that the sprite track's idle rate has been set to 60, which means the handler gets called once a second. Once a new image is loaded, the appropriate thumbnail sprite get's it's image index assigned to the new image, replacing the placeholder which was there at launch. Once the thumbnail images have been loaded and placed on the sprites the "thumb loader" sprite is disposed of to get rid of the idle handler, and playback moves to the "playing" part of the movie. When a thumb is clicked on it checks the qtlist, looking for the element with the index which corresponds to the ID of the clicked-on sprite. This element contains the movie name, which gets ".mov" tacked on, resulting in a relative URL which can be used to load the movie into the Movie track. The panning and zooming controls are handled in their own sprite track, and are much simpler than the movie and thumb loading stuff. Once this is all set up, all that needs to be done to change the movies and thumbs is to put the new assets in the folder with the movie and change the names in the xml file. Other tracks in the project include a text track which is used for debugging and a skin "FastTrack". There are various places in the scripts where debugging information is sent to the text track. During development one leaves the text track in some visible location, and then for released versions it can be hidden or deleted. I find it useful to keep it around, in case I find the need to modify the project later. It's probably a good idea to comment out the actions which send text to it, but for this project they are left on. The Skin "Fast Track" is a new LiveStage construct introduced by TotallyHip in version 4 of the product. It makes it easy to slap the background and skin tracks together. I haven't used it to it's full potential. For more info check out the comments in the various scripts. The sprite tracks ("thumbs" and "controls") do all the work. To test the project you'll need some movies (any kind, but named with ".mov" at the end), thumbs (101x61 pixel images, named the same as the movies, but with ".jpg"), and an updated xml file containing the base filenames (no dot or extension). Copyright 2002 Eric Blanpied - Eric Blanpied, Oct 2002.