Interface Programming 2
An Introduction and Course Overview
Rich media interfaces and web applications (RIAs) offer users an expressive experience that differs from tradional HTML/CSS interfaces. Some examples include flash sites for the entertainment industry (movies, bands, etc.), online games, educational learning systems, interactive product promotion and demos, custom gallery systems (for videos and images), interactive advertising, interactive infographics, mobile apps, and much more.
In this class we will learning how to use Flash and accompanying technologies to create expressive interfaces in the form of rich web appications and web sites. During the first few weeks of the semester we will learn the basics of ActionScript, Flash's internal scripting language. During the remaining weeks of the semester, we will go through the full design process of planning, designing, and building one large-scale rich media interface.
Major Assignments
Overview of the Major Projects for this Course.
| Assignment: | Week: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Due: |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. Simple Flash Site | Week 2 | |||||||||||||||||
| 2. Complex Flash Site | Week 7 | |||||||||||||||||
| 3. FInal Project | Week 16 |
Calendar
A monthly overview of the semester
Lessons
A Week-by-Week Breakdown
Click on the top bar for each week to expand or collapse the contents, or you can expand all weeks or collapse all weeks.
Week 1: Intro to the Course
Agenda:
- Introduction to the course
- In this class we will learning how to create rich media interfaces in the form of Flash applications and web sites. During the first few weeks of the semester we will learn the basics of ActionScript, Flash's internal scripting language. During the remaining weeks of the semester, we will go through the full design process of planning, designing, and building one large scale rich media interface.
- Introduction to the primary project: using Flash to develop a large-scale rich media interface
- You can choose any interface that you want to work on (yes, you can choose a real-world client).
- Your interface must be relatively small (approx 3-5 pages in depth, no less)
- You must go through the full design process, including doing all research
- You must gather all content
- We will take a look at student sites from past years.
- Look at a few Flash Examples
- Flash Web Sites
- Flash Web Applications
- Flash Games
- Flash-authored Stand-alone Presentations
- Flash-authored Mobile Apps
Presentation:
Class examples + related links:
Flash Web Sites
- 2010 Interface Programming 2 Final Flash Sites - [url]
- 2008 Interface Programming 2 Final Flash Sites - [url]
- 2006-7 Interface Programming 2 Final Flash Sites - [url]
- current 2advanced.com site - [url]
- old advanced.com site - [url]
- Vodafone Journey - [url]
- Vodafone Journey - write-up on the North Kingdom Web Site - [url]
- North Kingdom - [url]
- Leo Burnett - [url]
- Square Circle - [url]
Flash apps used on HTML web sites
Flash Games
- Nickelodeon Games - [url]
- Mr. Picasso Head - [url]
- Webkinz - [url]
Flash stand-alone presentations
- Fine Living Channel presentation - [url]
- Warner Brothers Home Video presentation - [url]
- Mandalay Bay Gaming presentation - [url]
- Mandalay Bay Convention Center presentation - [url]
- Grey Advertising promo - [url]
- CCA director's meeting presentation - [url]
- CCA director's meeting presentation - [.fla]
Other:
- Adobe Expressive Web
- Adobe Flash
- Adobe Flash Catalyst
- Adobe Flash Builder
- Adobe Air
- Adobe Flex
- Adobe Edge
- Adobe Wallaby
- Adobe Muse
- Adobe Flash Devnet
- Wikipedia: Adobe Flash
- Wikipedia: SVG
- Wikipedia: HTML5 Canvas
- Adobe & SVG
- Adobe & HTML5
- AI to Canvas
- Tumult Hype
AS3 Coding: Mouse Event code (Memorize)
//as3 import class
import flash.events.MouseEvent;
//as3 button code
myButton.addEventListener(MouseEvent.CLICK, myFunction);
//as3 button functions
function myFunction(event:MouseEvent):void {
//action goes here
}
Assignment-related links:
- Video Lesson :: Simple Flash Site (controlling the timeline) - [url]
Video Download: MP4
- Lesson file :: Simple Flash Site (controlling the timeline) - [.fla]
- Lesson file :: Simple Flash Site (controlling the timeline) - [url]
Assignment: Simple Flash Web Site Due: Week 2
- Set up your class web page. Please note that all students are required to have hosting space to post their designs, assignments, and ultimately their final web site. Students are required to purchase a hosting plan with a third party hosting provider. Past students have purchased hosting plans from Bluehost, iPage, Super Green Hosting, and GoDaddy (these are just a few of many hosting providers available). Plans should include ample disk space (ie. more than 2GB or unlimited), support for CGI, PHP, and MySQL, multiple domain hosting (to host more than one site), one-click install/support for Wordpress, Joomla, and Drupal (popular CMS options), and a low, competitive price (an example rate is around $3-$5/month – this is subject to change based upon current trends for hosting prices).
- Once your class web page is set up, email the url to the instructor.
- Study & memorize the AS3 Mouse Event code above.
- Watch the Simple Flash Site (controlling the timeline) video lesson, then create a simple Flash web site. Post it on your class web page.
- Reading :: "Getting Started with ActionScript" chapter on Adobe.com's LiveDocs
Week 2: ActionScript Basics
Agenda:
- In-class Exercise :: Contolling Movie Clips
Class examples + related links:
Inspiration:
- Big Spaceship - [url]
- Big Spaceship's Starburst Page - [url]
- Starburst.com - [url]
Infographics:
- NEWSWEEK: The Worlds' Best Countries - [url]
- NYTIMES: 1 in 8 million - [url]
- NYTIMES: Election 2008 - [url]
- NYTIMES: Katrina - [url]
Assignment-related links:
- Video Lesson :: Controlling Movie Clips - [url]
Video Download: MP4
- Lesson file :: Controlling Movie Clips - [.fla]
- Lesson file :: Controlling Movie Clips - [.swf]
- Lesson file :: Circle Bouncing Around the Room - [.fla]
- Lesson file :: Circle Bouncing Around the Room - [.swf]
Assignment: Controlling Movie Clips Due: Week 3
- Watch the Controlling Movie Clips video lesson, complete the Contolling Movie Clips in-class exercise, and post it to your class web page.
- Start doing personal research on Flash authored rich media applications and interfaces. Identify a few potential sites/interfaces/apps that you find interesting, bookmark them for future reference, and start thinking about the interface that you eventually will want to work on for your final project.
Week 3: ActionScript + Movie Clips
Agenda:
- In-class exercises:
Class examples + related links:
Inspiration:
- Flux Visual - [url]
AS3 Coding:
var newx:int = 350;
var newy:int = 200;
// Move the circle according to the values of newx and newy
addEventListener(Event.ENTER_FRAME, moveMyCircle);
function moveMyCircle(event:Event):void {
mc_circle.x += (newx - mc_circle.x)/10;
mc_circle.y += (newy - mc_circle.y)/10;
}
// Change the values of newx and newy via mouse location on click
stage.addEventListener(MouseEvent.MOUSE_DOWN, changeDestination);
function changeDestination(event:Event):void {
newx = mouseX;
newy = mouseY;
}
// Change the values of newx and newy via mouse location continually
addEventListener(Event.ENTER_FRAME, changeDestination);
function changeDestination(event:Event):void {
newx = mouseX;
newy = mouseY;
}
Assignment-related links:
- Video Lesson :: Moving Movie Clips with Math - [url]
Video Download: MP4
- Lesson file :: Moving Movie Clips with Math - [.fla]
- Lesson file :: Moving Movie Clips with Math - [.swf]
- Lesson file :: Moving Movie Clips with Math (chasing) - [.fla]
- Lesson file :: Moving Movie Clips with Math (chasing) - [.swf]
- Lesson file :: flash web site in Illustrator - [.ai]
- Video Lesson :: flash web site - part 1 (import & setup) - [url]
Video Download: MP4
- Lesson file :: flash web site - part 1 (import & setup) - [.fla]
- Lesson file :: flash web site - part 1 (import & setup) - [url]
Assignment: Controlling Movie Clips Due: Week 4
- Complete the Moving Movie Clips with Math and Moving Movie Clips with Math ("Chasing") in-class exercises and post them to your class web page.
- Complete the Flash web site - part 1 (import & setup) in-class exercise and post it to your class web page.
- Continue your research on Flash authored rich media applications and interfaces. Work toward Identifying potential clients/sites/interfaces/apps that you may want to work on for your final project.
Week 4: Building a Flash Web Interface
Agenda:
- In-class exercises:
Class examples + related links:
Flash Site examples:
- in-class example :: swan design - [url]
- in-class example :: diamond + schmitt architects - [url]
- in-class example :: rubicon estate - [url]
- in-class example :: corpse bride - [url]
- in-class example :: corpse bride case study at blitz agency - [url]
- in-class example :: blitz agency - [url]
Assignment-related links:
- Video Lesson :: Flash web site - part 2a (enter transitions) - [url]
Video Download: MP4
- Lesson file :: Flash web site - part 2a (enter transitions) - [.fla]
- Lesson file :: Flash web site - part 2a (enter transitions) - [url]
- Video Lesson :: Flash web site - part 2b (enter + exit transitions) - [url]
Video Download: MP4
- Lesson file :: Flash web site - part 2b (enter + exit transitions) - [.fla]
- Lesson file :: Flash web site - part 2b (enter + exit transitions) - [url]
Assignment: Flash Web Site Due: Week 5
- Complete the Flash web site - part 2a (enter transitions) and Flash web site - part 2b (enter + exit transitions) in-class exercise and post them to your class web page.
- Continue your research on Flash authored rich media applications and interfaces. Start flushing out your ideas into concrete plans.
Week 5: Building a Flash Web Interface
Agenda:
- In-class exercises:
Class examples + related links:
Resource:
- article :: custom AS3 preloader - [url]
Assignment-related links:
- Video Lesson :: Flash web site - part 3 (selected nav state) - [url]
Video Download: MP4
- Lesson file :: Flash web site - part 3 (selected nav state) - [.fla]
- Lesson file :: Flash web site - part 3 (selected nav state) - [url]
- Video Lesson :: Flash web site - part 4 (moving nav state) - [url]
Video Download: MP4
- Lesson file :: Flash web site - part 4 (moving nav state) - [.fla]
- Lesson file :: Flash web site - part 4 (moving nav state) - [url]
- Video Lesson :: Flash web site - part 5 (custom preloader) - [url]
Video Download: MP4
- Lesson file :: Flash web site - part 5 (custom preloader) - [.fla]
- Lesson file :: Flash web site - part 5 (custom preloader) - [url]
Assignment: Flash Web Site Due: Week 6
- Complete the Flash web site - part 3 (selected nav state), Flash web site - part 4 (moving nav state), and Flash web site - part 5 (custom preloader) in-class exercise and post them to your class web page.
Assignment: Reskinned Flash Web Site Due: Week 9 (Thurs)
- Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
- Post your reskinned Flash site on your class web page using SWFObject.
Assignment: FINAL Mobile App Due: Week 16
- It is time to work together in groups to decide what your FINAL interface will be - the choice is ultimately yours, but I suggest choosing something simple (to start) with the flexibility to expand/grow (feature-wise) as we learn more about how to use Flash for mobile app development. Examples: you can make up your own site, choose a hypothetical client, redesign an existing site, or find a real client and build a real site.
- WARNING: You will only have three weeks from today to plan your interface and to work on the visual designs (due week 10). So start designing right away. Begin by sketching, then work in either Illustrator, Photoshop, or Flash to create your graphical interface design and assets.
- Come to class next week with project ideas.
- FINAL Assignment: Mobile App - [.pdf]
Week 6: Building a Flash Web Interface
Agenda:
- For reference (we are not going to complete in-class, nor do you need to as an assignment):
- In-class exercises: Sliding Interfaces.
- Final project brainstorm:
- We will do some more small group work with the goal of draftng a list of final project ideas.
Class examples + related links:
Flash Sites & Examples:
- Jeremy Levine - [url]
- lab.mathieu-badimon - [url]
The Last Steps for Building a Flash Web Site:
Archived Steps (for future reference):
- Lesson file :: Flash web site - part 6 (movie clip sections) - [.fla]
- Lesson file :: Flash web site - part 6 (movie clip sections) - [url]
- Lesson file :: Flash web site - part 7 (external swf sections) - [.fla]
- Lesson file :: Flash web site - part 7 (external swf sections) - [url]
- Lesson file :: Flash web site - part 8 (preload external swf sections) - [.fla]
- Lesson file :: Flash web site - part 8 (preload external swf sections) - [url]
Sliding Interfaces:
- Lesson file :: Flash web site - part 9 (sliding content) - [.fla]
- Lesson file :: Flash web site - part 9 (sliding content) - [url]
- Lesson file :: flash web site - sliding interface #1 - [.ai]
- Lesson file :: flash web site - sliding interface #1 - [.fla]
- Lesson file :: flash web site - sliding interface #1 - [url]
- Lesson file :: flash web site - sliding interface #2 - [.fla]
- Lesson file :: flash web site - sliding interface #2 - [url]
- Lesson file :: flash web site - sliding interface #3 - [.fla]
- Lesson file :: flash web site - sliding interface #3 - [url]
Assignment: Reskinned Flash Web Site Due: Week 9 (Thurs)
- Complete the sliding interface in-class exercise and post it to your class web page.
- Now that you have completed all of the weekly Flash web site exercises, reskin your site or redo all of the steps from scratch with your own design.
- Post your reskinned Flash site on your class web page using SWFObject.
Assignment: FINAL Mobile App Due: Week 16
- Continue your research on Flash authored mobile apps. Come to class next week with a final list of concrete project ideas.
- Even if you have not yet chosen your final project idea, start thinking about/working on your designs for your final project.
- FINAL Assignment: Mobile App - [.pdf]
Week 7: Final Project - Mobile App
Agenda:
- Final Project Meeting
- We will meet as a large group to discuss final project ideas and choose which projects each team will pursue.
- Flash Demos:
- Full-browser Flash Web Sites
- Image slightly moving to the mouse in Flash
- Scrolling Navigation in Flash
Class examples + related links:
Full-browser Flash Web Sites:
- Lesson file :: full browser flash site (no moving BG) - [.fla]
- Lesson file :: full browser flash site (no moving BG) - [url]
- Lesson file :: full browser flash site (w/ moving BG) - [.fla]
- Lesson file :: full browser flash site (w/ moving BG) - [url]
Scrolling Navigation (+ simple image/mouse movement):
- Lesson file :: scrolling nav #1 (to mask) - [.fla]
- Lesson file :: scrolling nav #1 (to mask) - [url]
- Lesson file :: scrolling nav #2 (to stage) - [.fla]
- Lesson file :: scrolling nav #2 (to stage) - [url]
- Lesson file :: scrolling nav #3 (loading external JPGs) - [.fla]
- Lesson file :: scrolling nav #3 (loading external JPGs) - [url]
Simple image/mouse movement:
- Lesson file :: simple image/mouse movement - [.fla]
- Lesson file :: simple image/mouse movement - [url]
Assignment-related links:
- Midterm Example #1 - [url]
- Midterm Example #2 - [url]
- Midterm Example #3 - [url]
Assignment: Reskinned Flash Web Site Due: Week 9 (Thurs)
- Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
- Post your reskinned Flash site on your class web page using SWFObject.
Assignment: FINAL Mobile App Due: Week 16
- Work together as a group to chooseyour final project. Identify the client, target audience, etc. and write up a brief description to be included within a creative brief. Add to your creative brief any related or pertinent information that may be helpful.
- Draft a site map that clearly illustrates the basic information architecture of the interface.
- As a group, decide how you will post your creative brief and site maps - either via one of your class web pages or Laulima - your choice.
- FINAL Assignment: Mobile App - [.pdf]
Week 8: Final Project - Mobile App
Agenda:
- Creative brief and site map presentations.
- Work week to take advantage of class time to discuss your projects as a group and begin working on your visual interface designs.
Assignment: Reskinned Flash Web Site Due: Week 9 (Thurs)
- Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
- Post your reskinned Flash site on your class web page using SWFObject.
Assignment: FINAL Mobile App Due: Week 16
- Begin your visual designs for the interface. Create visual designs (jpgs) for each page/section of the app.
- Post your designs to your class web page. (due week 10)
- FINAL Assignment: Mobile App - [.pdf]
Week 9: Final Project - Mobile App
Agenda:
- Lesson: How to insert flash into HTML using SWFObject
- In-class group work and in-class working time to finish your visual designs.
- "Reskinned" midterm due at the 2nd class meeting this week.
Class examples + related links:
SWFObject
- resource :: swfobject site - [url]
- adobe article :: swfobject - [url]
- adobe article :: providing alternate content for flash - [url]
- ALA article :: embedding flash into html - [url]
- Video Lesson :: Flash into HTML using SWFObject 2.0 - [url]
Video Download: MP4
- Lesson File :: Flash into HTML using SWFObject 2.0 - [url]
- Working HTML5 SWFObject example (as a reference)
Assignment: Reskinned Flash Web Site Due: Week 9 (Thurs)
- Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
- Post your reskinned Flash site on your class web page using SWFObject.
Assignment: FINAL Mobile App Due: Week 16
- Continue working on the visual designs for your flash site (due week 10).
- Post your designs to your class web page.
- FINAL Assignment: Mobile App - [.pdf]
Week 10: Final Project - Mobile App - Designs Due
Agenda:
- Informal Critique: Final Project Designs
Assignment: FINAL Mobile App Due: Week 16
- Work with your team to define remaining tasks.
- Lead developer(s)
- Flash authored?
- or DW/HTML/CSS/Javascript + Phonegap?
- Feature A, B, C, etc. developer
- Logo/icon designer
- App UI designer
- HTML page designer
- HTML page coder
- Lead developer(s)
- Continue tweaking/improving your visual designs as you code.
- FINAL Assignment: Mobile App - [.pdf]
Week 11: Final Project - Mobile App
Agenda:
- Team Meetings
- Status updates on individual tasks
- Define immediate in-class needs and decisions that need to be made today
- Define individual tasks for the next week.
- In-class work time to continue working on the final project. One-on-one support during class.
Assignment: FINAL Mobile App Due: Week 16
- Continue coding your final project. By now you should be working on the following:
- Multiple Tests of the Core Features/Functionality
- Authoring environment tests (ie. Flash vs. HTML)
- Third party plugin tests (ie. Google Maps API, JQuery Mobile, Flash XML galleries, Javascript galleries)
- Consider taking both top-down and bottom-up approaches. For example, a top-down approach would start using an existing framework, such as an existing Javascript Gallery system or Flash XML gallery system, then tweaking it to fit your needs. The bottom-up approach would be to code it from scratch.
- The Master Authoring Environment Document
- If you are authoring in Flash, a functioning main/primary/shell Flash .fla with all consistent interface elements (logo, navigation, etc.) and sub pages.
- If you are authoring HTML/CSS/Javascript, a functioning site (or page, such as is the case with a simple JQuery Mobile app) with all of the primary content sections.
- Scene-to-scene (section-to-section) Transitions
- If you are authoring in Flash, transitions should be animated.
- If you are authoring HTML/CSS, perhaps JQuery Mobile or some other Javascript third party mobile plugin will work.
- The HTML/CSS container that will hold the "demo" version of your latest draft will need to a) designed and b) coded.
- If you are authoring in Flash, be sure to use SWFObject to place your swf onto the HTML page.
- If you are authoring in HTML, consider using an iframe.
- Multiple Tests of the Core Features/Functionality
- Once you have a solid, functioning prototype or 1st draft, then you can consider the following:
- Adding experiential enhancements, like an animated preloader and mobile-like animated transitions.
- Consider adding sound effects.
- Continue improving your visual designs as you code.
- Custom icons/graphic symbolism.
- Roles to consider for this week:
- Project Manager - [in charge of tracking to-do lists and the primary internal site that will showcase the full creative process]
- Lead UI developer - [setting up the primary authoring environment]
- Primary Feature developers/testers - [conducting smaller tests for various app features & functionality]
- Logo/icon designer - [main app logo + main app icons]
- App UI designer - [in charge of the master Photoshop PSD files and the creation of any/all graphical assets]
- HTML page designer - [working on the visual layout and content of the app web page that will showcase the app including the working demo version of the app]
- HTML page coder - [creating the working html version of the web page that will showcase the app including the working demo version of the app]
- FINAL Assignment: Mobile App - [.pdf]
Week 12: Final Project - Mobile App - 1st Draft Due
[ -- NO FACE-to-FACE CLASS -- ]
[ -- Class will be held online asynchronously via Laulima -- ]
Week 13: Final Project - Mobile App
Agenda:
- Statue report meeting.
- In-class work time to continue working in groups and coding.
Class examples + related links:
Mobile Frameworks links:
- JQuery Mobile - [url]
- John Doe's JQuery Mobile Test - [url]
- John Doe's JQuery Mobile Test Source Files - [zip]
- JQ Touch - [url]
- John Doe's JQ Touch Test - [url]
- John Doe's JQ Touch Test Source Files - [zip]
- iScroll - [url]
Assignment: FINAL Mobile App Due: Week 16
- Continue coding your final project. By now you should be working on the following:
- The Final App (web app)
- The fully functioning web app (starting from the chosen prototype).
- Integrating the final design into the prototype.
- The web page showcasing the app that will hold the "demo" version of your latest draft will need to a) designed and b) coded.
- Design should be near finalized.
- Code it.
- The web page showcasing the process of creating the app that will hold all of the final assets (site map, wireframes, design comps, zip files, etc)
- Gather content.
- Code it and post it.
- The Final App (web app)
- FINAL Assignment: Mobile App - [.pdf]
Week 14: Final Project - Mobile App - 2nd Draft Due
[ -- NO FACE-to-FACE CLASS -- ]
[ -- Class will be held online asynchronously via Laulima -- ]
Week 15: Final Project - Mobile App
Agenda:
- Last full work week. In-class work time to meet in groups and finish your final project due next week. Group and one-on-one support during class.
Assignment: FINAL Mobile App Due: Week 16
- Continue coding your final project. By now you should be working on the following:
- The Final App
- The fully functioning web app with the final design.
- Testing the web app on all targetted devices.
- Testing Phonegap to find out whether or not we can convert the app from a web app to a native app.
- The web page showcasing the app that will hold the "demo" version of your app.
- Should include a link directly to the working web app.
- The web page showcasing the process of creating the app that will hold all of the final development assets (intro/brief description, site map, wireframes, design comps, final source zip files, final links to the app web page, web app, etc)
- Be sure to add an intro/brief description to the top of the page.
- Be sure to add links to 1) the final web page showcasing the app and 2) the final working web app.
- The Final App
- FINAL Assignment: Mobile App - [.pdf]
Week 16: Final Project - Mobile App - [FINAL]
Agenda:
- Final Critique
- 30-45 minutes per team to present.
| Thursday | Time |
|---|---|
| ---------- SETUP ---------- | 10:45-11:00 |
| Team #1 | 11:00-11:45 |
| ---------- 15 Min. BREAK ---------- | 11:45-12:00 |
| Team #2 | 12:00-12:45 |
| ---------- CLOSING REMARKS ---------- | 12:45-1:15 |
Quotes
Random quotes that are relavent to this class
"We don't have a single "Flash developer" at Big Spaceship. In fact, we grimace at titles like that.…We happen to be good at (and love) Flash, but we also happen to be good at (and love) a couple trillion different other technologies.…We believe in strategic thinking and great design and pushing the limits. Nowhere do we say it has to be done in technology X or programming language Y in order to be a successful and engaging project, and we don't believe the users who engage in the projects we put out there do either."
Jamie Kosoy, Associate Technical Director at Big Spaceship. From his Spaceship Labs blog post entitled "A Plea for Developer Unity."
"The cool thing is I'm working in one environment with Flash. I'm drawing vectors, writing programs, and then I can output to three different media."
Joshua Davis, Artist, Designer, and Technologist