Project Description

The main purpose of this project was to research and learn ActionScript 3.0, compare it to Lingo, and suggest efficient methods of teaching Flash programming. The results could then be potentially used to create an alternate course to CS215: Multimedia Design and Programming with Flash CS3 instead of Director MX 2004. Because I had to learn Flash and AS3 from scratch, this project does not go into more complex code, but enough to be able to mirror projects that have been done in CS215. This page will describe the process that went into this project.

Inspiration

The idea for this project started while brainstorming potential senior thesis ideas with my major advisor, Takis Metaxas of the Wellesley College Computer Science/Media Arts & Sciences department. He mentioned that he was thinking about creating a CS215 course with Flash, and I expressed my interest since I was planning on taking a Flash animation course the following semester. Later on, I signed up to take on this project as an independent study, MAS250.

MAS250 vs. ARTS255

There were several advantages to working on this project while taking Flash animation at the same time. The material would be fresh in my mind, and I would be able to use the ActionScript learned from this course to enhance my Flash projects. These Flash projects were a lot more sophisticated than the tutorials and demos created for this project. Not only is this project more focused on programming and adapting from Director, but because I was able to apply the ActionScript I learned, they served double-duty for both courses and enrichened my ARTS255 experience. The tutorials and demos are meant to teach AS3 by using basic examples that other students can then build upon, while the Flash projects are meant to fully showcase some capabilities of Flash.

Projects

This independent study project has many smaller projects within it. I had the flexibility to choose what I wanted to do and how I wanted to do it, and essentially was able to cover a whole variety of topics. For the first few weeks, I started off by reading the Digital Media Primer chapters to familiarize myself with ActionScript syntax. In ARTS255, I became familiar with the user interface. My project for the first month and a half was to teach Takis how to use Flash's interface, its basic functions, and highlight some of the main differences between Flash and Director. I created 5 tutorials for this time period, ending in a partially-implemented version of Space Invaders.

For the next month, I focused mostly on ARTS255 projects, using ActionScript whenever I could and researching code profusely online. I perused some of the Flash animation/programming books that were available in the Media Lab to see what they offered, and took advantage of being TA for CS215 to brush up on my Lingo. I decided to accept Takis' invitation to give a presentation on the last day of class for CS215 about this project, and introduce Flash from a programmer's perspective. The PowerPoint slides can be found here.

Aside from the presentation, the last few weeks were also spent mostly reflecting on the material I had learned and deciding how I would combine them to form a presentable final project. Mental notes and knowledge had to be parsed and categorized. I decided that the best way to do it was by making a website; after all, I am a Media Arts & Sciences major who prides herself in web design, among other such luxuries. A website would allow me to publish my work online, efficiently categorize different sections, showcase all Flash files, allow for easy access to materials and sources, be more fun to create, and be easy to maintain should the need arise in the future. Since all of the projects are created in Flash, it would make sense to somehow find a way to display them online, and at the same time learn how to embed .swf files in browsers. Each section of this website is a mini-project united with the same goal of teaching Flash.

Best ways to learn Flash

There is no right or wrong way, or even one true way to learning Flash, especially with a Director background. The first logical thing to do with learning any new multimedia application is to try it for yourself, read about it, and if possible, compare it to something that you already know. Familiarize yourself with the user interface, and compare it with another that you are familiar with. For example, the main workspace in Flash includes the toolbar, timeline, ActionScript screen, Library, and Properties. These are similar to Director's toolbar, score, script, cast member library, and the property inspector. If you can, have someone teach you. It was very confusing and overwhelming for me to try to learn Flash on my own a year ago. After getting familiar with your way around the program, start creating a few simple animations, then slowly add on ActionScript. When you become comfortable enough, you can come up with new ideas for applications, and look up code to add the interactivity and functionality you want.

In regards to CS215, there are several options of transforming it into a new course on Flash. The existing structure could be directly replaced with Flash lectures and content. The structure can be modified or taken apart altogether in favor of a new approach, which involves mostly going through various Flash books and doing the tutorials in them. The DMP has a few good ones in Chapters 8-11, but there are only a limited number of them. All of these methods are equally valid and will work well for different kinds of people, but I chose to reevaluate the existing structure and integrate content that seem to flow most naturally with learning Flash. The resulting structure, which is largely based on the homework assignments, can be found in the Topics section.

An unintended bonus to learning Flash is that it was easy to have fun while doing it. I had fun creating all of my Flash projects, without which I would have lost a lot of motivation to stick to it and debug errors. During Spring Break, I taught my fellow computer scientist (and boyfriend) Nick Winter how to use Flash, and, being a strong programmer, he picked it up right away. Teaching Flash has allowed me to reevaluate my own knowledge, and in this case, provided me the opportunity to collaborate on a fun side project; we started a small application that populated the screen with little color-changing shapes depending on the mouse location. This was the first time that I created separate ActionScript classes that needed to be imported. We created a new class, Pat, to represent these shapes. Even though the application is far from finished, and contains a few bugs at this point, it has shown that a good way to learn is to do it collectively and try new things. If it doesn't work out, you will always have the experience that you can use for future projects.

Acknowledgements

I would like to thank Takis Metaxas for the opportunity to work on this project, and for trusting in me to teach him some things about Flash. Thank you for being a great student, and for allowing me the freedom to make this project as flexible as it has been. Thank you also to Nick Winter, Oberlin College '08, for his love, encouragement, and support.