ARTDM 170, Week 9:
Encapsulation and Paper
      Prototypes
          Gilbert Guerrero
         gguerrero@dvc.edu
 gilbertguerrero.com/blog/artdm-170
Homework

• Please put your files in a folder with
  your last name and first initial
• Put the folder in my dropbox
• Example:
  
   smith-h
  
   
 MyAnimation.swf
         MyProjectDescription.pdf
Open Flash

• Create a new ActionScript 3.0
  document:
  
  
 MyEncap.fla
• Create a new ActionScript file:
  
   
   MyEncap.as
Encapsulation
Intro and Ending Screens

• To encapsulate a movie, use 3 frames
 ‣ 1st frame holds the intro screen and
     a button
 ‣   2nd frame holds the game or movie
 ‣   3rd frame holds a game over screen
     and a restart button
Flash Buttons
To create a button:
• Create a new symbol in the Library
• Symbol type: Button
• In a button, each frame is a button state:
  ‣ Up - no user interaction
  ‣ Over - user mouse hovers over
  ‣ Down - user clicks the button
  ‣ Hit - invisible shape defines whatʼs
    clickable
Encapsulation: Frame 1
In the first frame:
• Add a button to the stage
• Name the instance of the button “play_btn”
• Select the first frame and add this script:
play_btn.addEventListener(MouseEvent.CLICK,startGame);

function startGame(event:MouseEvent) {

	   gotoAndStop("playgame");

}

stop();
Encapsulation: Frame 2
•   Create a second frame
•   In the Properties panel, label the frame
    “playgame”
•   Create a MovieClip symbol in the Library
•   Right click on the symbol to open Properties...
    ‣ Click Export for Animation
    ‣ Enter your movieʼs class name in the class field,
      e.g. MyAnimation
•   Drop an instance of the symbol onto the stage and
    place it at (0,0) in the upper left corner of the
    stage
Encapsulation: Frame 3
In the third frame:
• Add a button to the stage
• Name the instance of the button “replay_btn”
• Select the first frame and add this script:
replay_btn.addEventListener(MouseEvent.CLICK,playAgain);

function playAgain(event:MouseEvent) {
   gotoAndStop("playgame");

}

    In a game, the final frame of the encapsulation
    would be your Game Over screen.
Getting to the third frame
Your encapsulated movie needs to provide a way to load
the third frame.
•       Create a variable in your ActionScript class
    public var bounceCount:Number = 0;

•       Add 1 to the variable each time an event occurs
    bounceCount++;

•       When the variable reaches its limit, send the movie to
        the “gameover” frame (you must refer to the root movie)
    if (bounceCount >= 10000) {
          MovieClip(root).gotoAndStop("gameover");

    }
Paper Prototypes
Building Paper Prototypes

• Cheap, easy, and effective
• Paper Prototyping on A List Apart
Arrays
Storing and Retrieving

• Arrays can be used to store data
  fruits = {“apples”,“oranges”,“bananas”}

• Data can be retrieved from arrays
  using the index numbers
  trace(fruits[0]); //apples
  trace(fruits[1]); //oranges
  trace(fruits[2]); //bananas

  // I like to eat apples and oranges.
  trace("I like to eat "+fruits[0]+" and "+fruits[1]+".");


• More about Arrays next week...
Randomization

• Generate a random number between 0
  and .999999
Math.random()

• Round down using Math.floor and to
  multiply Math.random by a number
  get a random integer between zero and
  your number
//generates integers from 0 to 29
Math.floor(Math.random()*30)
Homework, due Oct 21

• Read Chapter 5: Arrays in the
  ActionScript 3.0 Cookbook, p103-136. 
• Be sure you learn about these
  functions:
 ‣  array.push()
 ‣  array.splice()
 ‣  array.concat()
 ‣  and Looping through an Array (see
    section 5.2)

ARTDM 170, Week9: Encapsulation + Paper Prototypes

  • 1.
    ARTDM 170, Week9: Encapsulation and Paper Prototypes Gilbert Guerrero gguerrero@dvc.edu gilbertguerrero.com/blog/artdm-170
  • 2.
    Homework • Please putyour files in a folder with your last name and first initial • Put the folder in my dropbox • Example: smith-h MyAnimation.swf MyProjectDescription.pdf
  • 3.
    Open Flash • Createa new ActionScript 3.0 document: MyEncap.fla • Create a new ActionScript file: MyEncap.as
  • 4.
  • 5.
    Intro and EndingScreens • To encapsulate a movie, use 3 frames ‣ 1st frame holds the intro screen and a button ‣ 2nd frame holds the game or movie ‣ 3rd frame holds a game over screen and a restart button
  • 6.
    Flash Buttons To createa button: • Create a new symbol in the Library • Symbol type: Button • In a button, each frame is a button state: ‣ Up - no user interaction ‣ Over - user mouse hovers over ‣ Down - user clicks the button ‣ Hit - invisible shape defines whatʼs clickable
  • 7.
    Encapsulation: Frame 1 Inthe first frame: • Add a button to the stage • Name the instance of the button “play_btn” • Select the first frame and add this script: play_btn.addEventListener(MouseEvent.CLICK,startGame); function startGame(event:MouseEvent) { gotoAndStop("playgame"); } stop();
  • 8.
    Encapsulation: Frame 2 • Create a second frame • In the Properties panel, label the frame “playgame” • Create a MovieClip symbol in the Library • Right click on the symbol to open Properties... ‣ Click Export for Animation ‣ Enter your movieʼs class name in the class field, e.g. MyAnimation • Drop an instance of the symbol onto the stage and place it at (0,0) in the upper left corner of the stage
  • 9.
    Encapsulation: Frame 3 Inthe third frame: • Add a button to the stage • Name the instance of the button “replay_btn” • Select the first frame and add this script: replay_btn.addEventListener(MouseEvent.CLICK,playAgain); function playAgain(event:MouseEvent) { gotoAndStop("playgame"); } In a game, the final frame of the encapsulation would be your Game Over screen.
  • 10.
    Getting to thethird frame Your encapsulated movie needs to provide a way to load the third frame. • Create a variable in your ActionScript class public var bounceCount:Number = 0; • Add 1 to the variable each time an event occurs bounceCount++; • When the variable reaches its limit, send the movie to the “gameover” frame (you must refer to the root movie) if (bounceCount >= 10000) { MovieClip(root).gotoAndStop("gameover"); }
  • 11.
  • 12.
    Building Paper Prototypes •Cheap, easy, and effective • Paper Prototyping on A List Apart
  • 13.
  • 14.
    Storing and Retrieving •Arrays can be used to store data fruits = {“apples”,“oranges”,“bananas”} • Data can be retrieved from arrays using the index numbers trace(fruits[0]); //apples trace(fruits[1]); //oranges trace(fruits[2]); //bananas // I like to eat apples and oranges. trace("I like to eat "+fruits[0]+" and "+fruits[1]+"."); • More about Arrays next week...
  • 15.
    Randomization • Generate arandom number between 0 and .999999 Math.random() • Round down using Math.floor and to multiply Math.random by a number get a random integer between zero and your number //generates integers from 0 to 29 Math.floor(Math.random()*30)
  • 16.
    Homework, due Oct21 • Read Chapter 5: Arrays in the ActionScript 3.0 Cookbook, p103-136.  • Be sure you learn about these functions: ‣ array.push() ‣ array.splice() ‣ array.concat() ‣ and Looping through an Array (see section 5.2)