Borough of Manhattan Community College
The City University of New York
Multimedia Programming & Design
MMP 230 Interaction Design with Multimedia Programming

Instructor: Matthew Belanger
Email: bmcc@matthewbelanger.com
Website: http://www.matthewbelanger.com/bmcc/mmp230/
Lecture Hours/Week: 2
Lab Hours/Week: 3
Credits: 4

A. Description:

Students will learn to design interfaces and manipulate graphics, text, sound & video through programming using ActionScript in Macromedia Flash MX. An emphasis will be placed on planning projects and using programming concepts for the development of games, websites & dynamic multimedia applications.

B. Prerequisites:

Basic Skills: ENG 088, ESL 062, RDG 062, MAT 010/011, MMP 100
Co-requisite: MAT 051

C. Objectives:

By the end of the course the student will be expected to:
•  Understand the basic structures of ActionScript, such as properties, conditional statements, repeat loops and variables
•  Control animation, sound and video with ActionScript
•  Understand the terminology and concepts of object oriented programming
•  Create custom functions and objects, dynamically create movie clips & text fields
•  Understand how to manage code and other project assets
•  Develop an interface for dynamically loaded data, such as XML or PHP, for game design or e-commerce

D. Required Texts and/or Supplemental Material:

ActionScript for Flash MX: The Definitive Guide, Second Edition by Colin Moock published by O'Reilly ISBN: 0-596-0036-X

E. Evaluation and Requirements of Students:

Class and homework assignment: 30%
Midterm Project: 25%
Final Project: 35%
Class performance and attendance: 10%

F. Attendance Policy:

The College's attendance policy states: "At BMCC, the maximum number of absences is limited to one more hour than the number of hours a class meets in one week. In the case of excessive absence the instructor has the option to lower the grade or assign an 'F' or 'WU' grade."

G. Outline of Topics:

ActionScript Fundamentals:

• The Flash MX Interface
• Movie Clips & Buttons
• Event Handlers
• Properties
• Statements & Commands
• Variables
• Operators
• Expressions
• Conditionals
• Repeat Loops
• Functions & Methods
• Arrays

Using ActionScript To Control interface Elements:
• Animation
• Drawing API
• Sound
• Video
• Text

Object Oriented Programming:
• Manipulating the built-in objects of Flash
• reating custom objects, constructor functions
• inheritance

Project Management:
• Developing logic through pseudoCode
• Managing Assets
• Loading External Scripts

Dynamically Loaded Data:
• Working with XML in Flash
• Importing Data From Outside of Flash

H: Course Outline:

Class 20 (April 12):
1. Review Drawing API
2. Flash Communication with Server Pages
PHP, ASP, JSP, ColdFusion
LoadVars Object
• LoadVars Methods, LoadVars.load(), LoadVars.getBytesLoaded(), LoadVars.getBytesTotal(), LoadVars.send(), LoadVars.sendAndLoad(), LoadVars.toString()
• LoadVars Properties, LoadVars.contentType, LoadVars.loaded
• LoadVars Events, LoadVars.onLoad
POST vs. GET

Class 19 (April 7):
1. Flash Drawing API
• Drawing API Methods, MovieClip.lineStyle(), MovieClip.lineTo(), MovieClip.curveTo(), MovieClip.moveTo(), MovieClip.beginFill(), MovieClip.endFill()

Class 18 (April 5):

1. Work on Midterm in Class
2. Turn in Midterm (email or burn to cd)

Class 17(March 31):
1. Work on Midterm in Class

Class 16 (March 22):
1. Flash Buttons In Depth
• Simple Buttons
• Invisible Buttons
• Buttons with Multiple Hot Spots
• Animated Buttons
• Fixed State Buttons
• Interactivity with Buttons
2. Introduce TextField Object
• TextField Methods, TextField.removeTextField(), TextField.addListener(), TextField.removeListener(), TextField.getDepth(), TextField.replaceSel(), TextField.setTextFormat (), TextField.getNewTextFormat(), TextField.setNewTextFormat()
• TextField Properties, ._alpha, .autoSize, .background, .backgroundColor, .border, .borderColor, .bottomScroll, .embedFonts, ._highquality, ._height, .hscroll, .html, .htmlTest, .length, .maxChars, .maxhscroll, .maxscroll, .multiline, ._name, ._parent, .password, ._quality, .restrict, ._rotation, .scroll, .selectable, .tabEnabled, .tabIndex, .text, .textColor, .textHeight, .textWidth, .type, ._url, .variable, ._visible, ._width, .wordWrap, ._x, ._xmouse, ._xscale, ._y, ._ymouse, ._yscale
Loading External Text Files
3. Work on Midterm in Class

Class 15 (March 17):
1. Review Advanced Actionscript Techniques
• Review Event Handlers as Functions
• Review Including External ActionScript Files
• Review External ActionScript Editors
2. Work on Midterm in Class

Class 14 (March 15):
1. Advanced Actionscript Techniques
Event Handlers as Functions
• Including External ActionScript Files
External ActionScript Editors
2. Work on Midterm in Class

Class 13 (March 10):
1. Review Flash Video
• Importing video
• Sorenson Squeeze for Flash MX
• Advantages of Flash as video plugin
• A simple video player interface
2. Midterm Discussions
• Talk about Project Ideas

Class 12 (March 8):
1. Flash Video
• Importing video
Sorenson Squeeze for Flash MX
• Advantages of Flash as video plugin
• A simple video player interface
2. Midterm Discussions
• Talk about Project Ideas

Class 11 (March 3):
1. In Class Project
• Finish space shooting game

Class 10 (March 1):
1. In Class Project
• Continue space shooting game

Class 9 (February 24):
1. In Class Project
• Start space shooting game

Class 8 (February 22):
1. The Fundamentals of Programming with ActionScript
• Review Arrays
• Review Sound Object
• Introduce creating your own functions
• Introduce new MovieClip Methods, MovieClip.loadMovie, MovieClip.getBytesLoaded, MovieClip.getBytesTotal
2. Streaming MP3 Player
3. Image Gallery
• Loading external JPEGS

Class 7 (February 17):
1. The Fundamentals of Programming with ActionScript
• Review Arrays
• Review MovieClip Methods, duplicateMovieClip(), removeMovieClip(), MovieClip.attachMovie()
• Review Color Object
• Introduce Sound Object, Methods: Sound.attachSound(), Sound.loadSound(), Sound.start(), Sound.stop(), Sound.getBytesLoaded(), Sound.getBytesTotal(), Sound.getPan(), Sound.setPan(), Sound.getTransform(), Sound.setTransform(), Sound.getVolume(), Sound.setVolume() , Properties: Sound.duration, Sound.position, Event Handlers: Sound.onLoad, Sound.onSoundComplete

Class 6 (February 15):
1. The Fundamentals of Programming with ActionScript
• Introduce Arrays, Methods, join, pop, push, reverse, slice, splice, sort, toString, unshift, Properties, length
• Review MovieClip Methods, duplicateMovieClip(), removeMovieClip(), MovieClip.attachMovie()
• Review Levels & Depth
• Review Color Object

Class 5 (February 10):
1. The Fundamentals of Programming with ActionScript
• Review Variable Scope, Timeline, Local, Global
• Review Identifiers, this, _root, _parent, _global
• Review MovieClip Properties
• Introduce New Functions, startDrag(), stopDrag(), random()
• Introduce Movie Clip Methods, duplicateMovieClip(), removeMovieClip(), MovieClip.attachMovie()
• Introduce Levels & Depth
• Introduce Color Object, Color.getRGB(), Color.setRGB() , Color.getTransform(), Color.setTransform()

Class 4 (February 8):
1. The Fundamentals of Programming with ActionScript
• Questions From Class
• Review MovieClip Properties
• Introduce Button Properties, enabled, useHandCursor
• Review Conditionals
2. Turn in Assignment 1 (email or burn to cd)

Class 3 (February 3):
1. The Fundamentals of Programming with ActionScript
• Introduce Variable Scope, Timeline, Local, Global
• Introduce Identifiers, this, _root, _parent, _global
• Review Data Types
• Introduce Bult-In Functions, Number(), String(), Boolean()
• Review Event Handlers
• Review Expressions
• Review Conditionals
• Review Operators
• Review Repeat Loops
• Introduce MovieClip Properties, _name, _visible, _alpha, _currentframe, _totalframes, _x, _y, _xscale, _yscale, _height, _width, _rotation, _xmouse, _ymouse
2. Continue Assignment 1 (Due Class 4)

Class 2 (February 1):
1. Review the Flash interface
2. The Fundamentals of Programming with ActionScript
• Review Variables
• Review Data Types, Number, String, Boolean
• Review Statements
• Review Commands & Arguments
• Review The Output Panel
Event Handlers in depth
• Introduce Expressions
• Introduce Conditionals, if, else, else if
Operators In Depth, . (Dot), + (Addition), - (Minus), *(Multiplication), / (Division), < (Less Than), <= (Less Than or Equal To), > (Greater Than), >= (Greater Than or Equal To), = (Assignment), ++ (Increment), -- (Decrement) , == (Equality), != (Inequality), === (Strict Equality), !== (Strict Inequality), && (Short-Circuit And), || (Logical Or)
• Introduce Repeat Loops, for, while
Commenting Your Code, //, /*
3. Assignment 1
• Create a Button & a MovieClip
• Use a Button Event & a MovieClip Event
• Use 2 or more frames
• Use at least 3 Variables, 1 Number, 1 String, 1 Boolean
• Use the trace() command to track Variable values
• Use at least 2 Conditionals
• Use at least 2 Operators
• Use at least 1 Repeat Loop

Class 1 (January 27):
1. Introductions
2. Show Some Flash/Actionscript Projects I've worked On
3. Introduce the Flash interface
• Show The Stage, Timeline, Properties Panels
• Show Design Panels, Align, Color, Transform
Creating & Saving A New Document & Basic Document Settings
• Introduce Symbols, Buttons vs. MovieClips
• Show The Library
• Symbol Names vs. Instance Names
• Show The Actions Panel
• Show The Help Panel
4. The Fundamentals of Programming with ActionScript
• General Programming Concepts, Logic, Math, pseudoCode, Syntax
• Introduce Variables, var message = "Hello Class!";
• Introduce Data Types, Number, String, Boolean
• Introduce Statements
• Introduce Commands & Arguments, trace(variable)
Test Your Movie
• Introduce The Output Panel
• Introduce File Types, swfs vs. flas
• Introduce Operators
• Introduce Event Handlers

I: Links:

Useful Flash Links:

Macromedia Flash - Support Center
http://www.macromedia.com/support/flash/

Macromedia Flash - ActionScript Dictionary
http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/

Intro to ActionScript
http://www.hed.swin.edu.au/design/tutorials/flash/intro_as/index.php

Writing ActionScript
http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00000841.html

moock.org>> asdg>> codedepot
http://www.moock.org/asdg/codedepot/

ActionScript: The Definitive Guide
http://www.monkeytools.com/oreilly/webdesign/action/

Actionscript.org Macromedia Flash Resources and Tutorials
http://www.actionscript.org/

kirupa.com - Shocked Flash Resource
http://www.kirupa.com/

Flash Kit, A Flash Developer Resource
http://flashkit.com/

ActionScript Toolbox: Resources, Code Samples, Tutorials
http://actionscript-toolbox.com/

Director vs. Flash
http://webmonkey.wired.com/webmonkey/99/27/index3a.html?tw=multimedia