Interface Programming 2

Interface Programming 2 introduces Flash's programming language ActionScript via projects that combine interactivity and animation. Students will learn basic computer programming techniques used to add interactivity to rich media and web-based applications.

"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

SYLLABUS & GRADESHEET:


MAJOR ASSIGNMENT LIST:

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 Flash Site Week 16

CALENDAR:

WEEKLY SCHEDULE + DIGITAL ASSETS:

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:

  1. 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 working Flash web site.
  2. Introduction to the primary project: Designing & Building One Flash Web Site
    • You can choose any site that you want to work on (yes, you can choose a real-world client).
    • Your site must be relatively small (approx 4-5 pages in depth, no less)
    • You must go through the full design process, including doing all research
    • You must gather all content
  3. We will take a look at student sites from past years.
  4. Look at a few Flash Examples
    • Flash Web Sites
    • Flash Web Applications
    • Flash Games
    • Flash Stand-alone Presentations

Presentation:

Class examples + related links:

Flash Web Sites

Flash apps used on HTML web sites

Flash Games

Flash stand-alone presentations

Hosting Examples:

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:

Assignment: Simple Flash Web SiteDue: Week 2

  1. 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).
  2. Once your class web page is set up, email the url to the instructor.
  3. Study & memorize the AS3 Mouse Event code above.
  4. Watch the Simple Flash Site (controlling the timeline) video lesson, then create a simple Flash web site. Post it on your class web page.
  5. Reading :: "Getting Started with ActionScript" chapter on Adobe.com's LiveDocs
Week 2: ActionScript Basics

Agenda:

  1. Slide Presentation :: Introduction to ActionScript
  2. In-class Exercise :: Contolling Movie Clips

Class examples + related links:

Inspiration:

Infographics:

Assignment-related links:

Assignment: Controlling Movie ClipsDue: Week 3

  1. Watch the Controlling Movie Clips video lesson, complete the Contolling Movie Clips in-class exercise, and post it to your class web page.
  2. Start your research on Flash web sites. Identify a few potential sites that you like, bookmark them for future reference, and start thinking about the flash site that you eventually will want to work on for your final project.
Week 3: ActionScript + Movie Clips

Agenda:

  1. In-class exercises:

Class examples + related links:

Inspiration:

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:

Assignment: Controlling Movie ClipsDue: Week 4

  1. 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.
  2. Complete the Flash web site - part 1 (import & setup) in-class exercise and post it to your class web page.
  3. Continue your research on Flash web sites. Work toward Identifying potential clients/sites that you will want to work on for your final project.
Week 6: Building a Flash Web Interface

Agenda:

  1. In-class exercises:

Class examples + related links:

Flash Sites & Examples:

AS3 Coding for Step 6 (movie clip sections):

//initiate home content
	var defaultSection:mc_section_home = new mc_section_home();
	mc_content.addChild(defaultSection);

//dynamically add the targetsection movie clip into mc_content
	var tempSection:String = "mc_section_" + targetsection;
	var mc_section=new (getDefinitionByName(tempSection) as Class)();
	mc_content.addChild(mc_section); 
}

AS3 Coding for Step 7 (external swf sections):

//initiate home content
	var externalSWF:Loader = new Loader();
	var url:String = ("swf/home.swf");
	var urlReq:URLRequest = new URLRequest(url);
	externalSWF.load(urlReq);
	mc_content.addChild(externalSWF);

//dynamically load external swf sections into mc_content
	var url:String = ("swf/"+targetsection+".swf");
	var urlReq:URLRequest = new URLRequest(url);
	externalSWF.load(urlReq);
	mc_content.addChild(externalSWF);

AS3 Coding for Step 8 (preload external swf sections):

//preload external swfs and tell cm_transition to stop
	externalSWF.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, 
runSubPreloader);
	mc_transition.stop();

function runSubPreloader(f:ProgressEvent):void {
	var subpercent:Number = Math.floor( (f.bytesLoaded*100)/f.bytesTotal );
	if(mc_subpreloader is MovieClip){
		mc_subpreloader.gotoAndStop(subpercent+1);
		mc_subpreloader.txt_percent.text = (subpercent + "%");
	}
	if(subpercent > 99){
		mc_subpreloader.gotoAndStop(1);
		mc_transition.play();
	}
}

Assignment-related links:

Assignment: Flash Web SiteDue: Week 7

  1. Complete the Flash web site - part 6 (movie clip sections), Flash web site - part 7 (external swf sections), Flash web site - part 8 (preload external swf sections), and Flash web site - part 9 (sliding content) in-class exercise and post them to your class web page.
  2. Continue your research on Flash web sites. Continue working on your designs for your final project.
Week 7: Building a Flash Web Interface

Agenda:

  1. Bug Fixes from previous exercises
  2. More Flash Interfaces:
    • Sliding Interfaces
    • Scrolling Navigation
    • Image slightly moving to the mouse

Class examples + related links:

Sliding Interfaces:

Scrolling Navigation (+ simple image/mouse movement):

Assignment-related links:

Assignment: Reskinned Flash Web SiteDue: Week 9 (Thurs)

  1. Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
  2. Post your reskinned Flash site on your class web page using SWFObject.

Assignment: FINAL Flash Web SiteDue: Week 16

  1. It is time to decide what your FINAL flash site will be - the choice is yours. 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.
  2. WARNING: You will only have three weeks to work on the visual designs for your flash site (due week 10). So start designing your flash site right away. Begin by sketching, then work in either Illustrator, Photoshop, or Flash to create your graphical site design.
  3. Post your designs to your class web page.
Week 8: Building a Flash Web Interface

Agenda:

  1. Work day to work on your your final flash site designs.
  2. Critique of your round 1/initial flash site designs (2).

Assignment: Reskinned Flash Web SiteDue: Week 9 (Thurs)

  1. Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
  2. Post your reskinned Flash site on your class web page using SWFObject.

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Continue working on the visual designs for your flash site (due week 10).
  2. Post your designs to your class web page.
Week 9: Building a Flash Web Interface - [MIDTERM]

Agenda:

  1. Final Project Flash Site Work Week
    • Design, Design, Design
  2. "Reskinned" midterm due at the 2nd class meeting this week.

Assignment: Reskinned Flash Web SiteDue: Week 9 (Thurs)

  1. Once you have completed all of the weekly Flash web site exercises, reskin the existing site to have your own design.
  2. Post your reskinned Flash site on your class web page using SWFObject.

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Continue working on the visual designs for your flash site (due week 10).
  2. Post your designs to your class web page.
Week 10: Flash Web Site Project

Agenda:

  1. Lesson: SWF Object (a recommended way to place flash into html)
  2. Informal critique of final designs

Class examples + related links:

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Begin coding your Flash site. Start by doing three things:
    1. Converting your graphics into your main Flash file (may need to do manually). Consider using alpha transparent Png-24.
    2. Creating multiple test Flash files, for experimental interfaces (ie. sliding interfaces, full screen interfaces, etc.)
    3. Code your html page that your Flash will be paced into. Use SWFObject to place your flash into your html page. Style and position your html using css.
  2. If needed, continue tweaking/improving your visual designs as you code.
Week 11: Flash Web Site Project - Designs Due

Agenda:

  1. In-class work time to continue coding. One-on-one support during class.

Class examples + related links:

Custom Animated Buttons:

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Continue coding your Flash site.
    • By now you should have the following complete:
      • Functioning main/primary/shell Flash .fla with all consistent interface elements (logo, navigation, etc.) and sub pages
      • If you do not have all of your scene-to-scene (section-to-section) transitions animated, this is what you should be working on right now.
      • HTML/CSS container that holds your latest draft main swf using SWFObject.
      • Your latest draft (HTML/CSS + SWF) should be posted on your class web page for review/feedback.
    • Once you have a solid, functioning site, then you can consider the following:
      • Adding a main preloader
      • If all of your site content is on the main timeline or in movie clip(s), then consider moving them to external swf's, then loading them externally.
      • Consider animated rollovers.
      • Consider adding sound effects.
  2. If needed, continue tweaking/improving your visual designs as you code.
Week 12: Flash Web Site Project - 1st Draft Due

Agenda:

  1. In-class work time to continue coding. One-on-one support during class.

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Continue coding your Flash site.
    • By now you should have the following complete:
      • Functioning main/primary/shell Flash .fla with all consistent interface elements (logo, navigation, etc.) and sub pages
      • All of your scene-to-scene (section-to-section) transitions animated.
      • HTML/CSS container that holds your latest draft main swf using SWFObject.
      • Your latest draft (HTML/CSS + SWF) should be posted on your class web page for review/feedback.
    • You should now be working on the following:
      • Adding a main preloader
      • If all of your site content is on the main timeline or in movie clip(s), then consider moving them to external swf's, then loading them externally.
      • Consider animated rollovers.
      • Consider adding sound effects.
  2. If needed, continue tweaking/improving your visual designs as you code.
Week 13: Flash Web Site Project - 2nd Draft Due

Agenda:

  1. Lesson: How to code a Full-browser Flash interface.
  2. In-class work time to continue coding. One-on-one support during class.

Class examples + related links:

Full-browser Flash links:

AS3 Coding:

//imports
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

//set stage scaling and alignment
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

//stage resize handler listener
stage.addEventListener(Event.RESIZE, resizeHandler);

//stage resize handler function
function resizeHandler(event:Event):void {
	setBackground();
	setPos();
}

function setBackground() {
	mc_bg.x = stage.stageWidth/2;
	mc_bg.y = stage.stageHeight/2;
	mc_bg.width = stage.stageWidth;
	mc_bg.height = stage.stageHeight;
	if (mc_bg.scaleX < mc_bg.scaleY) {
		mc_bg.scaleX = mc_bg.scaleY;
	} else {
		mc_bg.scaleY = mc_bg.scaleX;
	}
}

//function to set the position of individual interface elements
function setPos() {
	mc_content.x = stage.stageWidth/2;
	mc_content.y = stage.stageHeight/2;
	mc_footer.x=0;
	mc_footer.y=stage.stageHeight-60;
	mc_nav.x=0;
	mc_nav.y=stage.stageHeight-60;
	logo_mc.x=stage.stageWidth-300;
	logo_mc.y=0;
}

}

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Continue coding your Flash site.
    • By now you should have the following complete:
      • Functioning main/primary/shell Flash .fla with all consistent interface elements (logo, navigation, etc.) and sub pages
      • All of your scene-to-scene (section-to-section) transitions animated.
      • HTML/CSS container that holds your latest draft main swf using SWFObject.
      • Your latest draft (HTML/CSS + SWF) should be posted on your class web page for review/feedback.
      • Main preloader designed and working.
    • You should now be working on the following:
      • If all of your site content is on the main timeline or in movie clip(s), then consider moving them to external swf's, then loading them externally.
      • Consider animated rollovers.
      • Consider adding sound effects.
  2. If needed, continue tweaking/improving your visual designs as you code.
Week 14: Flash Web Site Project

Agenda:

  1. Full work week. In-class work time to continue coding. One-on-one support during class.
  2. ----- [ no class on Thursday (Thanksgiving) ] -----

Class examples + related links:

Flash AS3 MP3 Players:

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Continue coding your Flash site.
    • By now you should be adding all of your content into the site, so that you have a testable/launchable working site.
    • If you are in good shape, then you can consider the following:
      • If all of your site content is on the main timeline or in movie clip(s), then consider moving them to external swf's, then loading them externally.
      • If you are loading external swfs, consider preloading them.
      • Consider animated rollovers.
      • Consider adding sound effects.
  2. If needed, continue tweaking/improving your visual designs as you code.
Week 15: Flash Web Site Project

Agenda:

  1. Full work week. In-class work time to finish your final project due next week. One-on-one support during class.

Assignment: FINAL Flash Web SiteDue: Week 16

  1. Finish your site and be sure to post a link to it on your class web page prior to the final critique next week.
  2. Create your portfolio entry and post a link to the pdf on your class web page prior to the final critique next week.
Week 16: Flash Web Site Project - [FINAL]

Agenda:

  1. Final Critique
    • 10 minutes per person to present.
    • 5 minute transition period in between presenters for further discussion, if needed.
Student Time
---------- SETUP ---------- 8:00-8:15
#1: Helen Chang 8:15-8:25
#2: Jennifer Lazariuk 8:30-8:40
#3: Jeremiah Skurtu 8:45-5:55
#4: Reynaldo Minn 9:00-9:15
---------- 15 Min. BREAK ---------- 9:15-9:25
#5: Michael King 9:30-9:40
#6: Mardee Melton 9:45-9:55
#7: Davin Char 10:00-10:10
---------- 45 Min. BREAK ---------- 10:15-11:00
#8: Melissa Lum 11:00-11:10
#9: Jason Mudrick 11:15-11:25
#10: Randall Shiroma 11:30-11:40
#11: Kathryne Sakata 11:45-11:55
---------- 15 Min. BREAK ---------- 12:00-12:15
#12: Emma Denight 12:15-12:25
#13: Elly Chen 12:30-12:40
---------- CLOSING REMARKS ---------- 12:45-1:15

Assignment: RevisionsDue: Week 17

  1. For those hoping to make revisions to any assignments from this class, you have one week from the last day of class to submit changes/revisions. If you do this, be sure to post all revisions on your class web page and email me prior to 8am on Thurs. Dec. 16th so that I can go back and adjust your grade accordingly. If I do not receive an email from you indicating that you made updates, then your grade will be based upon what you handed in as of the last day of class.
Search:

Find it fast.

Class info:

Interface Programming 2
KCC | New Media Arts
Kopiko 202
T,TH :: 10:45 am - 1:15 pm
Instructor: Chris Gargiulo
Office: Olapa 225

Laulima:

Laulima is the online course management web site for the University of Hawai‘i. Login to visit this course's online resources such as the discussion board, chat room, and drop box.

Helpful Links:

Below is a list of online resources related to this course.

Flash Gallery Sites:

Below is a list of sites that showcase sites built using Flash.