Authoring Wired MediaBy
- Matthew Peterson, University of California, Berkeley, and the M.I.N.D. Institute, Costa Mesa, California, U.S.A.
Interactivity is one of the most captivating topics for today's online community. It is a fast-growing field pushed by the rapid development and dispersion of Java, Shockwave, Flash, and QuickTime. While several good books are available about the interactive capabilities of Java, Shockwave, and Flash, until now there hasn't been a book about QuickTime interactivity. A logical follow-up to QuickTime for the Web, this eagerly awaited book by Matthew Peterson details the power of QuickTime's wired media technology and provides a resource for professionals developing and deploying interactive QuickTime content. This content can extend far beyond simple moviesit can act as application user interfaces, educational multimedia, scientific display panels, musical instruments, games and puzzles, etc., and can interact with you, your browser, a server, or with other movies.
Web developers, multimedia authors, and game developers.
Published: August 2003
Imprint: Morgan Kaufmann
"Matthew Peterson, one of the world's most innovative minds, infuses Interactive QuickTime with applicable insight and helpful humor. This book goes well beyond the basics, far into the best practices, with plenty of supporting scripts and sample projects. Covering a wide spectrum of topics, Interactive QuickTime: Authoring Wired Media addresses the building of UIs, repurposing already existing media, using physics for richer motion, and that's just getting started. The appendices along with the exploration of XML in QuickTime are indispensable resources for the active producer of QuickTime media. I am excited to have this resource available for QuickTime authors!" Michael Shaff, founder of Small Hands "This book belongs on the shelf of anyone who takes multimedia development seriously. For the aspiring QuickTime media developer, it addresses the most critical authoring issuesand the techniques described are clever and applicable to multimedia development of any ilk." Ken Loge, Oregon Research Institute "You are holding a book written by one the smartest people I have ever metand it has been my pleasure to know some VERY smart peoplea book about one of the most exciting technologies on the planet. The writing is clear and enjoyable. It starts with material suitable for beginners and proceeds steadily through intermediate, advanced, and into previously uncharted territory . . . . It's a trip, my friend. And one worth taking . . . Be warned: this is not an ordinary book. It can literally change your life." from the foreword by Steven Gulie, author of QuickTime for the Web "This book is chock-full of useful algorithms and interesting approaches to programming interactive behaviors in QuickTime movies." - MacTech
- Foreword by Steven GuliePreface What This Book Is and Is NotHow to Read This Book Explorations Acknowledgements Part I Background InformationChapter 1 What Is Interactive QuickTime? Explorations Chapter 2 How Do You Play an Interactive Movie? Explorations Chapter 3 The Stuff QuickTime Is Made Of What Are Atoms Tracks Samples Sprite Track Samples Sprites Scripts How to Make Interactive Sprite Tracks Explorations Part II Wiring Existing Movies Chapter 4 Getting Familiar with the Tools Explorations Chapter 5 Customizing the Presentation of an Existing Movie Explorations Chapter 6 Digital Rights Management Explorations Chapter 7 Adding DVD Features Explorations Part III Sprite WorldsChapter 8 A Simple World Explorations Chapter 9 Talking with Sprites Targets Properties Actions Custom Actions Custom Properties Rotation Behavior Explorations Chapter 10 Collision Detection Bounds Overlap Radius Overlap Point Testing Explorations Chapter 11 Cel-Based Animation Picasso Interactive Door Looping Images Inchworm Technique Onionskinning Coordinated Animation Cel-Based Pushing Cel-Based Dragging Explorations Chapter 12 User Interaction Pop Quiz Mouse Event Definitions Checkbox Mouse Hit Testing Mouse Enter and Mouse Exit Mouse Moved Drag Manager Double Clicks Focus Key Events Keyboard Managers Click Anywhere Keyboard Manager Key Polling Manager Explorations Answers to Quiz Chapter 13 Scripted Motion Linear Interpolation Easing In and Out Motion along a Mathematical Function Circular Motion Paths Spline Interpolation Explorations Chapter 14 Scripted Stretching Bar Graphs Drawing Lines Perspective Explorations Chapter 15 Cloning Sprites Making New Sprites Cloning Sprites with Behavior Disposing of Sprites Explorations Chapter 16 Modeling Physics Forces Friction Collisions Explorations Part IV User InterfacesChapter 17 Buttons Simple Buttons Checkboxes Components Radio Buttons Explorations Chapter 18 Sliders Explorations Chapter 19 Text Input Filtering the Input Text Field Component with Border Recursive Connections Multilined Text Areas Password Fields Explorations Chapter 20 Menus Explorations Part V MultimediaChapter 21 Audio and Video Audio Video Loading Linear Media Explorations Chapter 22 Effects Codec Effects Explorations Chapter 23 Image Overrides Explorations Chapter 24 MIDI Instruments SoundFonts Sampled Instruments Explorations Chapter 25 Text Tracks Scrolling Ticker Tape LCD Clock Text Links (Hotspots) Searching Text Captions Explorations Chapter 26 Flash Tracks Controlling QuickTime from a Flash Button Controlling a Flash Button from QuickTime Controlling Flash Movie Properties Explorations Chapter 27 QTVR Controlling VR Multinodes, Hotspots, Cubics, and Maps Explorations Chapter 28 MovieTracks Explorations Chapter 29 Third-Party Tracks Explorations Chapter 30 Other Tracks Video Tracks in Disguise Text Tracks in Disguise Timecode Tracks Modifier and Tween Tracks QuickDraw 3D Track Streaming Tracks Hint Tracks PDF Tracks Fast Tracks (FT) Cursor Tracks WorldWideVariables Tracks Base Tracks Explorations Part VI Communicating with the WorldChapter 31 XML and QTLists QTLists versus XML Working with QTLists Explorations Chapter 32 Loading Data Explorations Chapter 33 Setting Up a QTList Server About Tekadence Magik Setting Up the Test Server Explorations Chapter 34 Sending Data to a Server Launch the Server Explorations Chapter 35 Exchanging QTLists Explorations Chapter 36 Communicating with the Browser Passing Data into a Movie Explorations Chapter 37 Dynamic Media Explorations Chapter 38 Intermovie Communication IsMovieActive Explorations Chapter 39 Communicating with Applications Explorations Appendices Appendix A Useful Numbers Appendix B Math Functions Appendix C String Functions Appendix D QTList Functions Appendix E Programming Techniques Spatial Programming Breaking a Loop Exception Handling and Error Detection Functions, Methods, and Subroutines Calling Functions across Tracks and Movies Recursion Numerical Correction Floating-Point Precision Dividing by Zero (Epsilon Correction) Random Number Generation Custom Random Generator Dictionaries and Lists Debugging DebugStr Profiling Lazy Constructors Parallel Processing Sustainable Hacking Dynamic Script Evaluation Collaboration Appendix F Sprite and Track Geometry Coordinate System Spatial Properties Distance between Two Tracks 2.5 Dimensions Screen Updates Matrix Transformations Area of Sprites Sprite Center Two Points A Point and a Line Two Lines Regular Polygons Triangles Circles Spheres Appendix G Graphics Modes Appendix H Codecs Appendix I General MIDI Instruments Drum Kits Controllers Appendix J Components Appendix K QTText Tags Appendix L HTML Embed Parameters Embed Attributes Appendix M Wired Actions Appendix N Wired Constants Appendix O ASCII Table Appendix P Wired Sprites with Java Appendix Q Web Links Appendix R Contributing Developers Appendix S CD Contents Glossary Index About the Author QuickTime Developer Series