| Acknowledgments | xi |
| Introduction | xiii |
Part 1 | Getting Acquainted with Director's Tools | |
1 | Director's "Physical" Tools | 3 |
| Scripting? What's Scripting? | 6 |
| Other Scripting-Style Programming Environments | 7 |
| Director's Primary "Physical" Tools | 8 |
| Indispensable Tools | 10 |
| The Almost-Indispensables | 19 |
| What's Left? | 33 |
Project 1-1 | Creating a Classic Program | 34 |
| Mastery Check | 39 |
2 | The Library Palette | 41 |
| Director's Library Palette | 42 |
| Exploring Behaviors | 44 |
| Practical Uses for Behaviors | 49 |
| A Taste of 3-D | 55 |
| Behaviors That Collect Information | 57 |
| Changing the Library Palette | 62 |
| Getting Your Library Card | 64 |
Project 2-1 | Exploring Library Behaviors | 66 |
| Mastery Check | 67 |
3 | Code Tools | 69 |
| Preparing for Adventure | 70 |
| Variables Are Just Containers | 71 |
| Persistence of Memory | 77 |
| Script Anatomy 101 | 78 |
| Making Decisions | 85 |
| Do This That Many Times | 89 |
| Do This Until | 92 |
| Keywords | 93 |
| Types of Lingo Script | 96 |
Project 3-1 | Getting a List of Files | 98 |
| Mastery Check | 102 |
4 | Well-Written Lingo | 105 |
| There's More to Programming than Typing Commands | 106 |
| How to Handle Yourself Properly | 106 |
| Neatness Counts | 109 |
| Toward a Taxonomy of Variables | 112 |
| Read the (Built-in) Manual | 118 |
| A Clean, Well-Lighted Script | 123 |
Project 4-1 | Text Editor a la Lingo | 126 |
| Mastery Check | 130 |
5 | The Debugger | 131 |
| The Three Choices in Script Errors | 132 |
| Messing Up on Purpose | 133 |
| Stepping Through Code | 135 |
| More Debugger Features | 142 |
| The Other Debugger Controls | 147 |
| Using the Debugger to Understand Others' Programs | 149 |
Project 5-1 | Stepping Around Town | 150 |
| Summary | 151 |
| Mastery Check | 152 |
Part 2 | Using Director to Create Programs | |
6 | Preparing to Create a Program | 157 |
| Glamour? | 158 |
| Finding Your Audience | 159 |
| Entertainment | 161 |
| Education | 162 |
| Sales Support | 163 |
| Utility | 163 |
| Determining Your Release Platform | 164 |
| Windows Only | 164 |
| Macintosh Only | 165 |
| Shockwave | 165 |
| Multiple Platforms | 166 |
| Choosing Your Tools | 168 |
| Internal Tools | 170 |
| External Files | 173 |
| Xtras | 176 |
| Decisions, Decisions | 178 |
Project 6-1 | Making an ASCII Key Utility Program | 179 |
| Project Summary | 182 |
| Mastery Check | 183 |
7 | Creating Programs | 185 |
| Screen Testing | 186 |
| Knowing How You're Displaying Yourself | 189 |
| The colorDepth | 189 |
| The deskTopRectList | 196 |
| Testing, 1, 2, 3 | 200 |
| Alpha Testing | 200 |
| Beta Testing | 202 |
| That's a Wrap? | 206 |
| A World About Safety | 207 |
| Pack It Up and Ship It Out | 208 |
| Before You Even Make the CD | 208 |
| Planning the CD Layout | 211 |
| Common Release Troubles | 213 |
| Remote Troubleshooting Suggestions | 215 |
| Maintaining and Upgrading Your Programs | 217 |
Project 7-1 | Repurposing Keyster | 218 |
| Mastery Check | 223 |
8 | Integrating Lingo and Sprites | 225 |
| Interface | 226 |
Project 8-1 | Up the Paddle Without a Creek | 227 |
Project 8-2 | Having a Ball | 235 |
Project 8-3 | Upping the Ante | 246 |
| Taking It Easy | 249 |
| Summary | 250 |
| Mastery Check | 251 |
Part 3 | Unlocking the Power of Lingo | |
9 | Understanding the Power of Lists | 255 |
| Lists Aren't Just for Shopping | 256 |
| Organizing Lists More Effectively | 258 |
| Sorting Our Shopping | 261 |
| Care and Feeding of Properties | 263 |
| Getting Some Dimension | 264 |
| List Caution | 265 |
Project 9-1 | Putting Lists to Work | 267 |
| Mastery Check | 287 |
10 | External Files | 289 |
| It's All Just Ones and Zeros | 290 |
| File not Found | 291 |
| Opening a Dialog Box | 293 |
| Getting Something Back | 294 |
| Opening Files | 296 |
| Filtering the Files | 301 |
Project 10-1 | Making Ourselves Useful | 304 |
| Other External Files | 320 |
| Summary | 324 |
| Mastery Check | 325 |
11 | The Internet Revisited | 327 |
| Distributed Information | 328 |
| Web Content | 328 |
| Aren't Programs Supposed to Be Interactive? | 332 |
| Are You Being Served? | 334 |
| Pages Are Just Part of the Story | 337 |
| Another Way of Getting Files | 339 |
| Getting Net-Happy | 342 |
Project 11-1 | A Simple Web Browser | 344 |
| Mastery Check | 347 |
Part 4 | Object Oriented Programming | |
12 | The Fundamentals of OOP | 351 |
| The Black Box and the Pizza Shop | 352 |
| How OOP Is Related to Other Kinds of Programming | 353 |
| How OOP Isn't Like Other Programming Methods | 354 |
| Alley OOP | 358 |
| Making an Instance | 359 |
| Adding an Employee | 360 |
| Closing the Shop | 364 |
Project 12-1 | Doing Something Useful | 366 |
| Interface Revisited | 391 |
| Summary | 392 |
| Mastery Check | 393 |
13 | Behaviors Are OOP Too | 395 |
| You've Been Object Oriented All Along | 396 |
| Behavior Instantiation, Destruction, and Messaging Hierarchy | 397 |
Project 13-1 | Out of Sorts | 404 |
| Before You Make That Projector | 436 |
| Summary | 437 |
| Mastery Check | 438 |
14 | Movies in a Window (MIAW) as OOP Code | 439 |
| MIAWs: Better than Cats | 440 |
Project 14-1 | Getting Started with Renaming | 442 |
Project 14-2 | One More Utility MIAW | 460 |
| More Xtras | 473 |
| Summary | 474 |
| Mastery Check | 475 |
15 | Communication with MIAWs | 477 |
| Not Just Stand-Alone | 478 |
| Zoom! | 478 |
Project 15-1 | Hammer Your Thumb Again | 481 |
Project 15-2 | One More Idea | 485 |
| What Next? | 494 |
| Mastery Check | 495 |
A | Answers to Mastery Checks | 497 |
Module 1 | Director's "Physical" Tools | 498 |
Module 2 | The Library Palette | 499 |
Module 3 | Code Tools | 499 |
Module 4 | Well-Written Lingo | 500 |
Module 5 | The Debugger | 501 |
Module 6 | Preparing to Create a Program | 502 |
Module 7 | Creating Programs | 503 |
Module 8 | Integrating Lingo and Sprites | 504 |
Module 9 | Understanding the Power of Lists | 506 |
Module 10 | External Files | 507 |
Module 11 | The Internet Revisited | 508 |
Module 12 | The Fundamentals of OOP | 509 |
Module 13 | Behaviors Are OOP Too | 509 |
Module 14 | Movies in a Window (MIAWs) as OOP Code | 510 |
Module 15 | Communication with MIAWs | 511 |
| Index | 513 |