WWDC2001 Session 401
Transcript
Kind: captions Language: en hello my name is Eric LOM PA I'm a member the quick time team the interactivity group talked to you about what we've got going on interactivity first off we'll go into what we're doing enact interactivity little later on we'll talk more about the really new stuff when we talk about interactivity in terms of quick time we're talking about the ability to provide a much more active viewing experience than what you'd get in a TV or a linear video or a stream or something interactive movies tend to hold the users attention in ways that some other things don't interactivity is great teaching tool get people get their hands on the samples and examples and whatnot QuickTime interactive movies have a great advantage of playing the same whichever platform you want you've got a self-contained thing you're not relying on the JavaScript interpretation and this with that browser on this or that platform or anything it's it's a single movie the interactivity provides a great way to customize the user experience and including branding and whatnot and in many cases as we you'll see as we go on in this talk we're talking about quick times great strengths for integrating the various kinds of media many other companies do some of the kinds of media that we do but nobody lets you throw it all together and to really rich well combined at almost like little applications finally wired actions are big key to what goes on in QuickTime interactivity the wired actions are the way that we let you hook up and manipulate the various properties of any kind of QuickTime media we talk about media integration we have basically a few very interactive track types that you rely on for most interactive movies the sprite track is for bitmap images that are used as sprites and they can be animated reyes ways and they also can have wired actions put on them to turn them into buttons or whatever QuickTime VR is interactive in that you can I mean it's all about what the user does with it panning it around and zooming it also with the hotspots you can add more wiring and Macromedia flash provides a really great way to bring interactive movie elements into your your movie although QuickTime has got plenty of other tracks a few of which I have listed here all of these things can be thrown together and we have all sorts of ways to manipulate the various properties in the appropriate appropriate ways getting to Wired actions a bit you can sort of think of it as QuickTime scripting access although it is not a scripting method and the application that creates the wired actions can use whatever kind of scripting interface it chooses to and then compile to the wired actions for the user it's seen as the way to script a movie and make it do things like I said we provide access to many of the properties of QuickTime media track properties and for media that makes sense like sprites the individual sprites or whatever and things like VR you can set the pan angles and all we have actions to manipulate Flash media and it's a comprehensive growing list there so we have a lot of stuff it's been in here for a while and we keep adding to it in fact here's a partial list of what we've got the blue ones are the new ones and there's a few more and still some more if you'd like to be able to read that you can go off to the developer documentation and find a readable version now what's new Kubik VR shipped with a QuickTime 5 we also have added media skins the Macromedia flash for support whereas we had three before new wired actions to go with a lot of these and also do stuff that we weren't doing it all before server communication via cutie lists we're going to Cuba caviar and that there's more on the other stuff but the big deal about cubic vr we've had QuickTime VR for a while but the panoramas didn't let you look at the at the ceiling or the floor and if you did a very high field of view they were pretty inefficient important thing to realize bicubic VR is that they work just like cylinders your application doesn't need to know anything about the fact that it's playing cubic pano instead of cylindrical pano they don't replace cylinders though there are many places where a cylindrical movie is the appropriate choice underneath 115 degrees vertical field of view essentially it's more efficient to have make a cylinder if you go over that you're more efficient with a cube and the cube can have a limit to the tilt so that even though you might have a big black hole on the top the user doesn't have to see that it can behave like a cylinder they're backwards compatible if you open a cubic VR movie on a pre QuickTime 5 version of QuickTime you'll get what looks like a cylinder and it will just ignore the top and bottom faces the older version of QuickTime will think that it's will just see the the first four faces and see those are the tiles of the cylinder the authoring question with with cubic VR from Apple there's an application a free application called make cubic now which allows you to convert cubic or spherical content that you've got as an image out of whichever sort of authoring application and turn that into cubic vr movies the third there's been some third-party work and we have sample code called the VR make panel library for exporting cubic VR movies from your application so let's go over here and show some cubic VR we've got rather fresh topic here the Apple store shot and Kubik VR a case where everything is visible and and you know this is maybe a case where the ceiling is not incredibly important but the freedom of tilt is really nice the fact that you're not bumping your head as you go up does make a difference just another quick example of a cubic vr movie these two are provided by Janie Fitzgerald of access images and you know you Jets got beautiful high-speed performance it's really slick and you're completely into place there's no no blocking out there that's it for that demo go back to slides so a third-party authoring we've got real viz has got a stitcher which they previously had on Windows they've done an excellent port of it to the Mac it's working very well in Mac OS 10 and 9 it's in beta right now and should be shipping quite soon VR Works has had a tool out for doing all sorts of VR authoring for a while now their new version supports cubic movies that if they've been authored elsewhere to add various put them in a multi node hot movies add hot spots do things like that and the Squamish Media Group's tools for doing interesting wired things with quick time of the art movies work just as well with cubes and they've some of the minimun upgraded to take advantage of cubic things like tilt parameters and by I said real biz is working well on OS 10 as shown in a screenshot there and then we'll go on to Kenter Kowski who's going to talk about our support for adding it to your apps thank you Eric how many of you guys out there really love getting code from the developer CDs trying to get it into your applications and getting running and linking I didn't think so it's it tends to be a lot of work first thing that happens is that you go into code warrior and it needs to convert the project to get it into a newer project then you're missing some headers and then there's there you have to go around finding them well I hope to change that experience for you today sometimes I like to pretend like I'm a mathematician and one of the things that mathematicians tend to do is they all do proofs proofs of one theorem they'll say theorem 201 is true by virtue of theorem 200 well what I want to do for you guys today is to give you theorem 200 so that you can go on to 201 and and continue on with your value added what I'll be talking about today is some sample code that makes cylindrical and cubic quick time viewer panoramas very easily and something that you could easily add to your application even today it takes a source is either gee world's picture files or movie files the other thing I'm gonna be talking about today is an application that's been built using this sample code this will make Kubek QuickTime VR movies either from cue faces or from equal rectangular spherical picked images now the sample code as I mentioned makes either cylindrical or cubic QuickTime VR movies it's library quality by that I mean that it has a rich interface with enough parameters in there for you so that you don't have to actually go in and modify that code it's it's it's got one header that you have to interface to you just drop your drop the other file into your into your application link and run it's designed to be usable as is now here's what the sample code generally looks like there's a there's a lot of different kinds of interfaces but they all take the same general form you take a VR movie picked orgy world convert it into a QuickTime via our cylinder or cubic panorama and if you happen to be making a cylindrical panorama you have the choice of either making the classical-style rotated panorama or the more modern style non rotated panorama the there is a slight difference in the performance of the of the non non rotated panorama in our current rendering engine so but you can make it either way there's also some code in there for creating 1.0 panoramas but we don't encourage people to make those panoramas anymore now in this interface there's there's basically five parameters the first one is where most of the complexity is buried and that's where you set the parameters the the the pan tilt field field of view for the initial view the minimum maximum all sorts of things like that the rest of the things are the sources you're going to have the the source picture or tiles or something the hot spots the fast start styles if you want to include them or not if you don't have them you set those to no and then the final thing is where do you want to save the movie so this is this is particularly simple a simple interface very easy to use and the main cubic utility application was built on top of that this uses that their code and beyond what that has to offer its added a few additional features it has the ability to convert from an equal rectangular or spherical picked for some of those some some of you out here may not necessarily know what that is it's sort of like a Mercator projection of the earth where Greenland is huge and the North Pole is extended to a whole line on the top instead of a point there are some stitchers that produce that as a native output helmut dervishes Panorama tools being won and real visit stitcher being another I think real fish will also produce a cubic vr movie directly to but regardless if you have that equal rectangular pick you can convert that easily the other thing that's been added to this application beyond that which the sample code does it will compute an optimum minimum and default field of view now for the what what do we mean by an optimum field of view I consider some optimum to be when there's no pixel zooming so if you have one to one pixel zooming that's sort of like one optimum it's one place where you can you can where you can get the maximum resolution and the maximum field of view to the the next thing that it's added in that application is that the preview is generated to be independent of the resolution of the original panorama so if you have a extremely high resolution panorama such as that made by the panel scan camera you don't necessarily want to have a panorama that only has one quarter of the resolution for your preview you want to have something much smaller so here you get to actually choose what the resolution is totally independent of the resolution of the original panorama now VR make piano has some functions that that we don't make available to make cubic first of all it won't make cylindrical panoramas this is an application that's just made for making cubic so we aren't including that the other thing is that it doesn't allow you to make URL hot spots only undefined hot spots that you would then later have to define in your HTML code but if you want to make your own application out of the VR make panel sample code you can do that and you can have URL access to that so now I'd like to go to the to demo machine number two and demonstrate the make Kubik software this has been recently carbonized so it can run on OS 10 and as well as OS 9 and 8 now there's really just two menu selections here one of them is the convert menu and that's the one where you'd be doing most of your work there's two sections to it there is the source file specification on top and then there's the movie setting specification on the bottom so first let's choose a panorama I'm going to choose a panorama right here which was this is a equal rectangular spherical pict which is made by Denis Glickman of in France and I will open that up have that selected you'll see it appears right there we can change the compression settings I usually like to set this to I usually like to set it to 40% but 39 is close enough we can choose to get grayscale for the preview or blur the preview now notice over here this section here for generating the preview says pixels per degree some people with panoramas they'll say oh I have a 10,000 pixels pixels per inch pantera well pixels per inch doesn't make any sense for a panorama what really matters is the pixels per degree and as it turns out pixels per degree happens to be put directly proportional to the focal length of the lens that you use so here we specify that that can be either an integral number like 1 or a fractional number like 0.7 or or whatever I tend to like something between 1/2 and 1 so we'll generate this let's not blur it and make a grayscale version I don't have a hotspot file for this so we won't select that down on the bottom we can select our default pan and tilt so this would be a default pan angle here's a default tilt angle and for the field of view over here this has been automatically computed based on the window size and the resolution of the panorama that can be overridden by clicking off this optimal fov for the window size so if we change the window size to be say square 480 you should see the field of view change and what's that what that's trying to do is to set the field of view so that you're zooming is going to be exactly one to one on the pixels for the D for the default field of view and for the minimum field view that will be two to one so another feature that's over here is tiling now with a lot of you are familiar with cylindrical panoramas where you can specify the tiling to be 24 by 1 or 24 48 by 4 or something we can do a similar sort of thing with cubic panoramas only this tiling specifies the number of tiles to be used on each face here we can click the auto tile and in this case it it likes it as a 1x1 tiling so we'll just go with that but we could change it to 2 2 1 or 2 by 1 or whatever anyway without further ado let me make this panorama it it chooses automatically chooses a file name for me I can override that if I like and here it's it's converting that equal rectangular to each of the faces at the moment pretty soon it will flash by the preview track and then the the regular track and hopefully in this window we now have a panorama this is tilted 50 degrees up zoomed in this is at the optimum resolution so if we zoom in anymore we're gonna see the pixels blow up but it's limited to be two to one now inside make cubic is a set of preferences you can say that you can set your preferences for what you what you like your compression parameters to be you can set what the optimal field of view would be so if you don't like two to one for a minimum you can change that so it's automatically set that way and there's a number of other parameters you can set as well so let me try let me show you a different kind of panorama one that's made from faces so here I have a number of faces six phases of a panorama that was captured by Jamie Fitzgerald and notice how that appears over here the programers has parsed this to determine what's similar between the file names so it doesn't take up a lot of space over here I do happen to have a hotspot a set of faces over here too so we will select those as well you can see the faces are selected and maybe I'll make this to be 640 by 480 instead and leave that like that so now when this creates it it'll automatically suggest a file name for me though it's reading the reading all the picture files in creating everything there is the freshly made panorama very easy to use very powerful and and and it's free so I'd like to go back to the slides now oops with a message it's easy to make your application right QuickTime VR files either cylindrical or cubic panoramas you can download VR make panel dot C code this afternoon link it in with your application tonight and ship it tomorrow so I'd like to return the presentation to Eric okay Media skins exciting new QuickTime 5 feature the essential idea behind a media skin is it lets you have an arbitrarily shaped movie the big deal here is over skinning the media and not the player we hear a lot of talk about skins on various applications but by skinning the media and not the player it means that your content is customized so that every time it plays regardless of how the user has their QuickTime Player set up it's going to look the same way your message your branding whatever travels with the media and if you make a change and next week you want it to be a little bit different you just change the movie file and it's different again you don't have to get anybody to download a skin for the player it provides a great branding opportunity whatever goes with your media is always there and beyond the arbitrary shape of the movie you've got the full interactive tool set of QuickTime that we're talking about here to make really intricate and interesting movies and also we'll be seeing some examples so we're gonna go onto demo 4 okay let's see a basic skin movie here we've got a skin again this got as branding all over it it's a sprite movie with a video track they've built custom controls in it and every time this movie plays and whatever version QuickTime Player this is how it's going to look it's locked and a pre-designed presentation get a little fancier than that or in some ways we've got a skinned movie here where there's a separate navigation bar to allow you to select what movie you want we've got various wired actions going on and then upon clicking on something we open a related skinned player that obviously goes with it to give you a little more ability to to give your ear look to your content we'll look at this movie a little more a little later on so that's that's it for the demos on skins just now let's go back to slides the basic way that a media skin works is there you have three parts there's the source movie which is anything that QuickTime plays any kind of QuickTime media which is a large list of things you've got a window mask a one bit mass which defines the shape of the movie and a separate one bit mass which determines the area that the user will be able to click on it to drag QuickTime 5 pro and the pro player there's an XML importer designed to let you do this very simply you create the three files you write a little bit of XML which defines the which source points at the different source files you drag and drop the source the XML file on QuickTime Player that creates the skinned movie and if you save that as self-contained you won't need to have the XML or the source files around later there's good information about how to do that a whole tutorial on our site so I'm not going to go into it right now but I do want to mention that we've got sample code up as well to allow you to create media skin movies in your application without the XML importer or whatever and also to playback skin movies with the skins intact in your player application of any sort the new wired actions we've got all sorts of stuff going on text tracks have gained a lot of interactivity in QuickTime 5 we can take user input we can have them be manipulated via scripts we can enter text we can trap the key the key entry much better than ever before and you can so you can do a combination of key in keyboard entry from the user as well as script based stuff and we've got a lot of actions for setting setting there the styles and the fonts and the colors and hypertech's text colors and whatnot so text tracks are very interactive now in in QuickTime 5 we have some new application messages which primarily are seeing use in QuickTime Player but these are not specifically targeted just towards QuickTime Player basically this is the wired action is a simple thing which says send the app message with a number to say which have message it is the ones that make a big difference to the content authoring community especially when so we've got skins out are the enter and exit full-screen which people wanted a lot and the close window that's the one that has a lot to do with skins and by the time you get rid of the os's window controls you've got to start adding some in your own interface that you're building as a content creator so we've got that but as an application developer you could easily take advantage of this you could pass different numbers than what we've got and have your application catch them and do whatever you need to do so this is a another way to communicate from the movie to the application we've added things for doing a better job of making movies that work well on the web we've got Network Status and allowing you to check on the weather the network's up or whether I forget exactly the number of steps but we have you can find out before you make somebody's modem dial you can find out whether or not it's it's there online or not and ask them if they want to go online or things like that and the movie load State is very useful we can get all of the different steps of of loading an HTTP movie we can get information about that so you can know when the movie is ready to play all the way or when it's it's completely downloaded or whatever with VR we've added a number of new things which are pretty cool the we basically now have enough actions in there to reproduce the whole controller so when you create your skin movie or whatever you don't need to worry about the fact that you don't have to be our controller around anymore you can create buttons for all of it or even if it's not skin you want to just do your own artwork we've got that in there they also have the ability to enable and disable hot spots which is need you can have it any particular hot spot be turned on or off we've got a bunch of new math functions sort of things that some people had created creative workarounds for before but now they're built in a quick time and just a whole lot of other things like setting bass and treble and it goes on as you saw when I showed the slide earlier on with zillions of actions we added something like a hundred new actions Macromedia Flash support has been upgraded in this release too for combining Macromedia Flash and video is a pretty interesting thing to do and quick times are the best way to do it you can buy you can layer it up in sophisticated ways and produce things that you couldn't do anywhere else we've got the full full mp3 audio support text input is another approach to having text input besides their text tracks who got loading movie and loading variable a QuickTime movie can have multiple flash tracks so you can get involved in intricate things there that again are different from what you might be doing just in Macromedia flash and we have a number of new wired actions that are specifically in there for working with flash tracks for instance we can get and set the text in a flash text field and another really interesting one is ability to trigger a flash button would be a wired action and enabling you to have very complicated flash action scripts which you trigger from your wired content from elsewhere in QuickTime also you can do pretty interesting things with macro media's flash tool itself they with flash for added export for QuickTime movies and that still works quite well in flash 5 and there is no need for an upgrade there to handle the new QuickTime 5 support so now we'll look at some flash movies on demo 2 okay so these are Swift files here the actual exported movies from from flash these are the kinds of things QuickTime on OS 10 we're giving them the QuickTime icon but these are the sort of things that would play directly in the flash player and drag and drop one of them onto QuickTime Player the importer creates a new movie right away with a flash track and this one's got a lot of flash for sort of features like text input and what else it's got some ActionScript stuff that's doing calculations and all based on the input there so that's right out of the box we're taking the the flash flash for content and making it work completely an example of that is duplicating movie clips so movie clips are Flash's way of having that sort of a hierarchy and with unsaved time basis these things are just work exactly the way they do in flash and flash for added support for making it really easy to drag elements around so that's working great to server communication well we've added the QuickTime lists QT lists - to QuickTime 5 QuickTime lists are basically hierarchical data structures you've got various elements and attributes which can have children and all its it resembles XML somewhat but it is not XML there it's an internal thing they you can have multiple route levels and whatnot which you cannot do an XML there's one QT list per movie or track so you can have multiple QT lists in a movie we are using XML as an exchange format to send these to and from servers in order to make them work as XML we do add a route element called QT list because a QT list structure in a QuickTime movie can have more than one route element it's important to note that QT lists are very useful for things that are not related to server communication and and I'll show you some stuff about that in a little bit you also we have a lot of wired actions in there and manipulate these to where the list can be internal to a movie when you load it you can go on to manipulate it via wired actions you can load them you can send them back to the server you can walk through the hierarchy and find out things about them and do various stuff so let's have some QT list demo must be demo 4 again so to look at a basic QT list movie that's not doing too much in the way of or any external communication we've got this simple little kaleidoscope movie now this is just doing fun little sprite things in order to have something to build a list and keep track of you'll see over here on the right hand side I'm building a list each thing that gets dragged winds up adding an element to the list and as I change them the appropriate elements in the list get modified if i reset what's on the screen i can read the list and load it the movie does not store everything in the list it just stores the first ones that get dragged the rest is generated from from the list instead you can delete them and have it delete the the item from the list so that's this is a sort of an example of where you might want to do some sort of record-keeping within a quick time the it's a much simpler way than having a big long list of variable somewhere basically taking care of it for you oh and this is also the text track over here on the right is or taking the the content of the quick time list and using some copied XML functions to create XML from the list and put it into this text here so that this is what it looks like in an XML format and I've got we can scroll the text field now that's another new quick identified text action the sprite this is a sprite track over here sending events over to tell the so the text track to scroll let's go back to the list player again I showed this very briefly when talking about skins but this guy uses a quick time list too which is probably not readable is it no sort of so there's something called movie list it's written in XML each movie in the entry has has a name and has got a description a bit of text I call it a paragraph it didn't wind up that way pointer to a thumbnail and a pointer to the URL the the the source files that are getting referenced are all down here when I open the nav unit movie it reads in the list and then goes and finds out what the thumbnails were and sticks them in and has then when someone has read the list it's got all that data that was in the XML file now in a cutey list format in the movie and we can it can use that to find out what text to put in for the the brief descriptions for the movies it uses that to know what URL to call for when we open up the movie and then change also if we saw if we go here and then change this have another list similarly put together which has the right name that's what will get fetched locally using this is using a get list and we have a different set of movies something a little more up-to-date than what we had before and again I'm just switching around these switches which ones they give you so this enables you to this enables you to put effort into a put effort into a fancy interface movie or set of movies which might not be the sort of thing which is worth doing every week on a website or something but by you can easily change the content that this thing is using without having anything to do with the QuickTime movie you upload new content you edit the QuickTime list and the movie suddenly behaves differently this movie is loading a child movie into the window there to show whichever content there's that close action I was talking about the other thing you can do is with that list you can create another interface that reads the same list and uses it in a different way this is a flash track which has dumped the names of the movies or the descriptions into flash text fields the rollover on the right is the paragraph rather than the brief description and the movies rather than using the little thumbnails we've used the actual rolling movies in there and it's all being masked nicely with the flash alpha channels and we can click on those and we get another different player which is related to this one so this is a way to repurpose in a way it's repurposing content or it's just providing people with different options for what look they want or or anything like that it's showing some versatility in the QT list here or the approach to making a movie which relies on lists to figure out how it drives I've just come across something that I didn't talk about before all right we're talking about new messages and the the we've got the thing for going fullscreen and exiting that's that's in here we've also got the the closed message and let me show you another flash movie this we've got a flash track and we've got some sprite stuff down here that's made to look like it goes together we've got editable text in here I reading that URL and using it to load a load of movie into a movie travel movie track here and in fact that can be local or not we can use a relative URL and load one of these other movies the we've used another new action here or or operand rather to determine what the length of the movie is to figure out how to make the scrub button the scrub bar here fit the duration of the movie let's get into another pretty interesting demo back to cutie lists sorry about that go over to Michael shafts small hands site where we have a movie that's up right now and in fact with Airport access going on in here one could probably just get right into it right now and do some more chat this is a chat movie let's see we're doing the demo now it when I enter something it is sending it off to a server that's that's at a totally hips place totally hit the publisher of live stage this is built in live stage and it will in fact be this source to this will be on an upcoming live stage tutorial we can scrub with the removable text track here the over here you see the syntax that's being used to to send messages back and forth you see the actual QT list you can change the slider here for how quickly it goes and talks to the server to find out what new messages there are one could imagine going a lot further with this you could easily build a chat kind of movie that where your stream your video stream is on one side and then that's there so that's this I mean this is this is the first in a server communication demo we have here and this one gets into some pretty interesting options so let's go back to slides for a little while integration of media as I said earlier is a really really big deal with that's that was that must been somebody out there okay like I said before QuickTime does a lot of interesting individual things and we even have competition on some of those things but nobody lets you put it all together to put to make these really complicated or not so complicated demos but nobody lets you add it together the same way these complex movies have such a power to hold the users attention you can build quizzes you can build games you can do all sorts of things you can wind up with self-contained interactive experiences that play anywhere you can play them in the player you can play them in your in a browser you can play them in your own application and you can be pretty sure that they're gonna look the same all over the place in different applicant places the platform and browser issues that are much less of a deal than other ways of doing this sort of thing so now we'll go back into demos and look at some highly integrated movies so be on demo 4 okay we've got another demo involving Janie Fitzgerald's work this is also collaborators on this where Robert West and Michael Schaff it's Roberts interface Janie's VR and Michael's wiring we've got rollover buttons here a nice skin and we've even got some sort of help text on your hotspots at times this is another movie which will be put together as a tutorial for the new version of live stage it will be available on their CD eventually and for the live stage 3 as well as probably on their site the we've got a sprite based compass up here which is reading pan angles from the the movie and updating we've got the sprite layers got these buttons which are are in some cases communicating to the VR and telling it to move around we can go full screen at the the mask that overlays the panorama has done with a nice alpha channel so it's really smooth and rounded and again it it's just it's customized the user experience to this content completely it's a very appropriate way to be using the stuff how it is directional audio paying attention to the pan angle for how the audio is doing a very nice well integrated highly interactive experience we do a lot of things people do a lot of really fascinating things in in in the browser this is a greenpeace org site it done by ec media up into vancouver it's popping different quicktime movies into different places to all work together we can we've got a quicktime vr movie here that's unwrapped and a flat it it winds up with a panel zoomable map and we can look at the map here and find out where the different hotspots are that sends message to the quicktime movie up here the top half of the movie is of the browser window is one movie the bottom half for the control bar and all is another movie the movie up here is the panorama is also there's also a picture track there which is making these other other things show up on the side the images let's find another one we click on it we get yet another movie in another movie this is all one QuickTime movie you know HTML here it's there's a slideshow we can leave in an autoplay or we can choose which slide we want to look at we can speed up slow it down the text is drawn with a text track we've got to close here that actually is doing it via JavaScript so that we can tell the browser to close the window and we've got things like the zoom in and out and they've got the ever-popular compass down there in this case the panning movie is communicating with a different movie for the place where the where that's going on so you're seeing in term of e communication between a lot of different movies here which is which is pretty cool I believe that we can jump to we can jump to new nodes either via via the map or the hotspots in there there's a ton of things in here it's Greenpeace org slash Great Bear if anyone wants to check it out it's it's packed with content oh and the the audio in the background is a streaming tract so it's a good half hour long birdsong thing you don't get one teeny little loop it's it's all unchanging it's it's unrep eating another DC media demo this is a sort of a distance learning we've got gentlemen here from Electronic Arts talking about the ways that they get there they use academic research to figure out what to put into their games ideas and he's talking about a topic in a very general sort of way he'll occasionally talk about topics which are interesting without going to greater detail but we can go and click on those bicubic surface is a to get more information about the topic if you do that it's got illustrations and text and all and the background movie has paused we say back the Becker movie picks up right away this is done with with QuickTime movie tracks these are in movies which are embedded inside of other movies which which makes for a lot of flexibility in saying the point that this movie is playing it doesn't change the point this two tracks in the same movie the no and another one from EC media these guys are very creative doing a lot this is interface built just about entirely out of flash the they've got a lot of rollover stuff here they've got draggable embedded Eclipse and the sort of stuff that you can do with a lot of flash scripting and they've got a movie that's built inside it this movie I believe this thing is built mostly in flash with very little work from elsewhere and this is obviously linear video but you can go and set it to play slow motion which is extremely difficult to do in flash which is a frame based format rather than a time-based one there's no way of saying play at whatever speed but in QuickTime while you've got to do this they play it set the rate 2.5 or whatever and meanwhile they're little they're slick rollover behaviors work fine and are uncoupled to the time base because it's that is taking advantage of some of the really useful flash aspects and let's look back to talk even more about a good old list player just as to talk about it in terms of integration of media this movie here has got a sprite layer in the background which contains the the artwork and this basic button here it's got a text track down here in this opening which we use information from the roll overs to put the information into and each one of these is a child a small child movie which has loaded from the direction from the Qt list when we click on these we send we first open up the second movie with a get URL action and then send a message and do a little interview movie communication send a message to the movie once it's open after paying attention to make sure it opened up all the way and tell it what movie it needs to load we also have used a new QuickTime 5 action which lets you check on which movie is whether a movie is active or not to dim or highlight the background movies we've got though again a wired sprite layer in the background to set up the the buttons and whatnot and a movie track that's in the foreground here we've also got a another hidden movie track which is being used as a sprite override any QuickTime sprite can use any track that's available in a movie to override its image in this case it would be hard to have the perspective of the shadow and and all this stuff be a draggable sprite so what we've done is we've got a little linear movie of the thumb moving which is loaded in a child movie and hidden and then used to override that sprite and the beauty of that is that it becomes time independent of everything else the length of this track does not have to sync at all with the length of this track which it's not going to because we can change that so often so yeah one of the great things about the movie track is to have enslaved time bases which don't happen elsewhere how are we doing here the that's that's unfortunately sort of winding it up thank you very much do me just I guess there's a couple of slides left right the feedback forum will be tomorrow afternoon at 3:30 we'll be there to hear everything you've got to say please do attend we want that input and in the fall don't forget QuickTime Live anyone who's really interested in QuickTime needs to be there it's got separate tracks for those interested in API level development content development and the marketing sort of issues and it's a really fun event so thanks a lot [Applause]