SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
You create actors…
                                     While you work through this tutorial, you can download the files for Part 2 and 3 if you haven’t
                                     already: http://uxweek.com/slides/FlashWorkshopFiles.zip

                                     The purpose of this initial exercise is to get you comfortable with the Flash metaphor:
                                     You create actors. You place them on the stage. You tell them what to do.

                                     Create an animated actor (symbol)
ActionScript 2.0 is more direct      01. Create a new Flash File that uses ActionScript 2.0.
and intuitive for non-
programmers than the latest
version, ActionScript 3.0 When       02. From the menus, choose Window > Workspace > Default so we’re all using the same
working in ActionScript 2.0,             Workspace. (You can close the Color and Swatches panel on the right.)
you’ll want to make sure that
tutorials and scripts you find are
compatible.
                                     03. Right-click or Ctrl+click in the empty Library panel and choose “New Symbol…”

Symbols are objects that can be      04. Name the new symbol, “Bug” and make “Movie Clip” is selected. Press “OK.”
used and reused. They are
similar to Shapes in Visio and
Stencils in Omnigraffle. You can
name symbols anything you
want—case does not matter.

Movie Clips are objects that act
independently of the main Flash
movie. A movie clip has its own
timeline, which is independent
of the main Flash movie’s
timeline.

The Edit Bar (Navigation Area)       05. Notice that the breadcrumbs in the Edit Bar/Navigation Bar tell you that you’re
indicates which timeline you are         currently viewing the stage and timeline for “Bug.”
currently viewing.




The Stage is your visual             06. On the stage that appears, use the drawing tools on the left to draw a bug. (You’ll
workspace or canvas. This is
                                         probably use the Shapes/Oval Tool, Pencil and Line/Fill Colors to draw it.)
where you specify where
objects will appear.

The Timeline is where you
define when objects appear or
disappear from the stage. The
timeline contains frames and
keyframes which can be on
multiple, independent layers.

Frames are displayed as blocks.
They are grey when they
contain content and white when
they are empty.

Keyframes are frames marked
with circles or dots. A keyframe
is a frame where a change can
occur without affecting the
previous frames. Changes made
on keyframes persist until the
next keyframe unless tweening
is used to fill in the blanks.



2 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
07. You’ve just created the first keyframe of your bug actor. To animate your bug, you’re
    going to add another keyframe with the bug in a slightly different pose. In the Timeline,
    right-click or Ctrl+click on the second frame and select “Insert Keyframe.”




08. The new keyframe should now be selected, and by default, it contains a copy of
    whatever was in the previous frame. (It’s like cellular division.) But since this is a new
    keyframe, you can change the graphic here without affecting the previous frame. Using
    the white pointer tool (the Subselection Tool), select each of your bug’s legs and use
    the pointer to change each leg’s position.




09. Click on the first frame in the timeline, and you should see your bug’s legs are still in
    the original positions. Click the second frame again to see the new position.

10. To preview your animation, open the Control menu and make sure “Loop Playback” is
     checked.

11. Press the Enter/Return key to play the animation. Press again to stop.

12. Click “Back” in the Navigation Bar to return to the main stage and timeline.




                                                                               Quick and Easy Flash Prototyping | Alexa Andrzejewski | 3
You place them on the stage…
                                     Add an instance of your actor to the main stage
Instances are unique                 13. Notice that your “Bug” appears in the Library Panel.
occurrences of symbols in your
Flash movie. You can place as
many instances of a library item     14. Drag an instance of “Bug” onto the main stage.
into your movie as you would
like. If you update the library
item, all of its instances will be
updated as well, although the
size and position may vary.




The Properties Panel is              15. In the Properties Panel, where it says <Instance Name>, give this unique instance of
context-sensitive—it shows and
                                          your bug a unique and proper name, for example: “Bob”
allows you to set properties for
the last frame or instance that
you selected. The Properties
Panel is where you can assign
                                     You tell them what to do…
frame labels to frames and
instance names to instances.         Make your actor move across the stage
                                     16. Move “Bob” into his starting position—in the off-stage area to the left of the stage.




4 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
17. Next you’re going to insert a keyframe that represents Bob’s final position. You want
     there to be some time between the starting position and final position, so Right-Click
     or Ctrl+Click on approximately the 50th frame and choose “Insert Keyframe.”

18. Making sure this new keyframe is selected, move Bob into his final position—off-stage,
    to the right.




19. Press the Enter/Return key to play the animation. Your bug should pause and then jump
     to the final position for a moment. Press again to stop.

20. Flash can automatically create a transition between keyframes for you. Filling in the
    frames between two points is called “Tweening.” Select the first keyframe, and in the
    Properties Panel, from the Tween menu select “Motion.” In the timeline, an arrow
    should now span the gap between the starting keyframe and the ending keyframe.




21. Press the Enter/Return key to play your movie. Bob should glide smoothly from his
     starting point to his ending point.

                                                                            Quick and Easy Flash Prototyping | Alexa Andrzejewski | 5
22. What about the moving legs? Pressing “Enter” only plays the current timeline. To view
                                         your movie as your audience will see it, with both timelines running independently and
                                         simultaneously, press Ctrl+Enter on PC, +Enter on Mac.

                                     Make your actor respond to user input
                                     23. Now you’re going to add some interactivity to Bob. You’re going to make him stop
                                         moving across the stage when pressed and start again when released.

                                     24. Select the first keyframe and select the bug on the stage, “Bob.”

The Actions Panel is context-        25. Open the Actions panel by going to "Window > Actions.”
sensitive—it shows and allows
you to add scripts to the last
frame or instance that you           26. When adding interactivity to an object, you want to ask yourself three questions.
selected. Look at the tab name
near the bottom of the Actions           •     WHEN do you want something to happen?
Panel to verify what you are
adding actions to.
                                               (You want something to happen when the user presses or releases the bug.)

                                         •     WHICH object or timeline do you want it to happen to?
                                               (You want the main timeline and stage, which he moves across, to be affected.)

                                         •     WHAT do you want to happen?
                                               (You want the main timeline to stop playing when the bug is pressed and to start
                                               playing when the bug is released.)

Event Handlers are used to           27. To specify WHEN actions should occur, add the following bits of code, called “Event
specify behaviors that trigger
                                         Handlers,” to “Bob” using the Actions panel:
actions. Actions contained
within an event handler’s curly
braces will be triggered only                  on(press) {
when the event preceding them
occurs (e.g., when an button is
pressed and when it’s released).
                                               }

Target Paths are like web URLs                 on(release) {
or file paths, only they use dots
(.) instead of slashes to indicate
hierarchy.
                                               }

Functions are built-in actions       28. To specify WHICH timeline you want to stop, in our case, the main timeline, which is
that you can call on using               referred to as “_root,” type its “Target Path” within the event handler’s curly braces:
keywords. These commands are
keywords followed by
parentheses in which specific                  on(press) {
details can be added when                        _root.
necessary or relevant.                         }

                                               on(release) {
                                                 _root.
                                               }

                                     29. To specify WHAT should happen, add the following keyword commands, called
                                         “Functions,” to the ends of the target paths:

                                               on(press) {
                                                 _root.stop()
                                               }

                                               on(release) {
                                                 _root.play()
                                               }

6 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
30. Finally, end every “phrase” of code with a semicolon (generally used at the end of every
    line of code) so that your final script reads as follows:

         on(press) {
           _root.stop();
         }

         on(release) {
           _root.play();
         }




31. Test your movie (Ctrl+Enter on PC,    +Enter on Mac) and try pressing and holding your
     bug. Then try releasing your bug.

32. If you additionally want to make Bob’s legs stop moving when pressed, you can add an
     additional line of code to each Event Handler. This code uses a Target Path to address
     Bob’s timeline and tell it to stop as well:

         on(press) {
           _root.stop();
           _root.Bob.stop();
         }

         on(release) {
           _root.play();
           _root.Bob.play();
         }

33. Test your movie (Ctrl+Enter on PC,     +Enter on Mac) again when finished.

Congratulations! As silly as this tutorial may seem, the basics you’ve just covered are all
you need to know to create a basic click-through prototype using Flash!




                                                                             Quick and Easy Flash Prototyping | Alexa Andrzejewski | 7
8 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
Setting Up Your Prototype
                                     Getting started…
                                     34. Open FlashPrototyping_WorkshopTemplate.fla

                                     35. Notice that numbered screen images from Facebook have been placed on the
                                         “Wireframes” layer in the Timeline, one per keyframe. If you select each keyframe,
                                         you’ll see a different image. An additional layer, “Interaction,” with one blank keyframe
                                         per wireframe has been added.




Frame Labels can be assigned         36. Select one of the keyframes on the “Wireframes” layer. Look at the Properties Panel
to keyframes so that they can be
                                         and note that it’s been given a label.
referred to using ActionScript. It
is generally better to refer to
frame labels in ActionScript         Add script to the first frame to keep the movie from automatically playing
than to frame numbers because
frame numbers are subject to
change as you add or remove          37. Insert a new layer and rename it, “Frame Actions.”
frames.
                                     38. Open the Actions Panel (Window > Actions) if it’s not already.

                                     39. Select the first keyframe in this new layer.

Frame Actions are attached to        40. With the first keyframe selected, type the following function in the Actions Panel:
keyframes and are triggered
when that frame is reached.
                                               stop();

                                     Create an invisible, reusable button
                                     41. Right-click or Ctrl+click in the empty Library panel and choose “New Symbol…”

                                     42. In the dialog that appears, name it "invisibleButton" and choose the type "Button."

                                     43. Notice in the Edit Bar that you are now editing “invisibleButton.”




10 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
44. Notice that this button’s “timeline” consists of four labeled frames. Each frame
    represents a unique button state. Typically, a button has three visible states—up
    (normal), over (rollover) and down (pressed)—plus an invisible state, called “Hit,”
    which you use designate the clickable area of a button. To make a button invisible,
    you’ll only create this invisible state.

45. Right-click or Ctrl+click (Mac) on the frame labeled, “Hit” and choose “Insert
    Keyframe.”




46. Using the Rectangle Tool and Fill Color picker if necessary, draw a solid-colored,
    button-sized box on this keyframe.




47. In the Edit Bar, click the Back Arrow or "Scene 1" to go back to the main movie.

48. Your "invisibleButton" symbol should appear in the Library Panel.

Create a Basic Click-through
Create a basic click-through using invisible buttons
49. Make sure the Wireframes and Frame Actions layers are locked.


                                                                           Quick and Easy Flash Prototyping | Alexa Andrzejewski | 11
50. Select the first keyframe of the Interaction layer.

                                    51. Drag an instance of the invisibleButton onto the stage and drop it over the “Edit” button
                                         in the first wireframe. It should appear as a transparent, blue area. Use the Free
                                         Transform Tool to make it cover just the area that should be clickable.




                                    52. Next you’re going to make the button interactive. Remembering the questions your
                                        script needs to answer (WHEN? WHICH? WHAT?), type the following script in the
                                        Actions Panel:

                                               on(release) {
                                                 _root.gotoAndStop(“W02”);
                                               }




                                    53. Note that the function that tells Flash to go to the frame specified in parentheses—
                                        gotoAndStop(“FRAME LABEL”)—is placed inside of the event handler—on(release) { }


12 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
54. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). You should be able to click
    on the invisible button go to frame W02.

55. For the next several keyframes, through W08, wherever you see a green, “go to X”
    callout, add an invisible button with the appropriate script. You can copy and paste the
    button you’ve already created, simply changing the destination frame label in the
    Actions Panel.

56. Test your prototype (Ctrl+Enter on PC,    +Enter on Mac). You should be able to follow
    the trail of green callouts.

Simulating Error Handling with Conditional Buttons
Add a checkbox from the components library and give it a name

57. Select the keyframe in the “Interaction” layer above the frame labeled “W05.”
    (Technically, frame labels apply to all layers.)

58. Open the Components library (Window > Components).                                             The Components Panel
                                                                                                   contains a special library of user
                                                                                                   interface objects, such as radio
59. In the “User Interface” folder, you’ll find the CheckBox component. Drag it onto the           buttons and combo boxes, that
     screen and place it on top of the check box in the wireframe.                                 have customizable properties.
                                                                                                   These properties can be edited
                                                                                                   in the Parameters tab of the
                                                                                                   Properties Panel and/or
                                                                                                   changed using ActionScript.




60. In the Properties tab, give the Instance Name, “termsBox” to this checkbox.




                                                                          Quick and Easy Flash Prototyping | Alexa Andrzejewski | 13
61. With the check box selected, in the Properties Panel, click the Parameters Tab. Select
                                         the “Label” field in the Parameters Tab and delete the label text.

The Parameters Tab of the
Properties Panel is where you
can edit the special properties of
components. Each property is
listed on a separate line.




                                     Create an invisible button that checks whether the checkbox is selected or
                                     not and sends the prototype to a confirmation or error screen accordingly
                                     62. Drag an invisible button over the "Upload Picture" button on frame “W05.”




                                     63. Select this button, and in the Actions Panel, add an event handler:

                                               on(release) {

                                               }

The If Statement describes a         64. Within this event handler, you’re going to add a conditional statement, an “If
condition that must be met for
                                         Statement,” that checks whether “termsBox” is selected.
certain action(s) to be
performed. It can optionally be
followed by an “else” statement                on(release) {
specifies what to do otherwise.                  if(CONDITION) {                 // If the condition in parentheses is met
                                                                                 // perform all actions in curly braces.
                                                   }
                                                   else {                        // Otherwise
                                                                                 // do these actions.
                                                   }
                                               }

                                     65. Place your cursor between the parentheses in the IF statement. (Delete the word
                                         “CONDITION” if you typed it here.)

Target Paths are like web URLs       66. To address the checkbox you created, you will need to use its target path. Rather than
or file paths, only they use dots
                                         typing it in, you can press the “Insert Target Path” icon in the Actions Panel to see
(.) instead of slashes to indicate
hierarchy.                               the named elements of your movie listed in hierarchical order. Select “termsBox.”

                                     67. Choose “Absolute,” not “Relative,” to inset the complete path. Press “Ok.”

                                     68. “_root.termsBox” should have been inserted into your IF statement, as shown:

                                               if(_root.termsBox) {




14 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
69. Look again at the Parameters tab in the Properties panel. Notice that there are several         Properties of an object are
    special properties of Combo Box components, including “label,” which you edited                 special keywords that Flash
    earlier, and “selected.” You can have Flash find out what the current value is of any of        recognizes. They are case
                                                                                                    sensitive. You can evaluate or
    these properties by adding the appropriate keyword to the path. To have Flash find out          change properties of an object
    whether “selected” is true or false, simply add “selected” to the end of the path, as in:       using ActionScript.

        if(_root.termsBox.selected) {

70. You want to check whether “selected” is currently “true” or not. To test whether                Operators are used in If
                                                                                                    Statements to compare one
    something is equal to something else, you’ll use the “equals” operator, which consists
                                                                                                    value to another in the format,
    of two equals signs. Your condition will read:                                                  “if(x OPERATOR y).”

        on(release) {                                                                               Common operators are:
          if(_root.termsBox.selected == true) {                                                     == equals
                                                                                                    > is greater than
            }                                                                                       < is less than
            else {                                                                                  != is not equal to
                                                                                                    <= is less than or equal to
                                                                                                    >= is greater than or equal to
            }
        }

71. Finally, add the actions that should happen when the condition is met and the actions
     that should happen otherwise, as shown:

        on(release) {
          if(_root.termsBox.selected == true) {
             _root.gotoAndStop("W07");
          }
          else {
             _root.gotoAndStop("W06");
          }
        }

Repeat these steps on W06 with a new checkbox and button, making sure
the actions go on the button, not the checkbox
72. Go to keyframe “W06”—the error state page—and add a new checkbox component.

73. Give this checkbox the instance name “termsBox2.”

74. Add another invisible button over the “Upload Picture” button.

75. Add the following script to this button (remember, the script goes on the button, not
    the checkbox!). You don’t need an “else” statement since if the condition isn’t met, you
    just want it to stay on this error page.

        on(release) {
          if(_root.termsBox2.selected == true) {
             _root.gotoAndStop("W07");
          }
        }

76. Test your prototype (Ctrl+Enter on PC,    +Enter on Mac).




                                                                           Quick and Easy Flash Prototyping | Alexa Andrzejewski | 15
16 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
Independent Movie Clips
                                    Create a flyout menu using a new, independent movie clip
                                    Using what you’ve learned so far, you’re now going to create a new, independent
                                    “actor”—just like Bob, with his independently moving legs—featuring a working flyout
                                    menu. This menu actor should:

                                         •     Highlight upon rollover.

                                         •     Open when pressed.

                                         •     Close if it is open and then pressed.

                                         •     Close and send the main movie to a certain frame if a specific item is pressed.

Movie Clips are objects that act    77. Use “Insert > New Symbol…” to create a new “Movie Clip” symbol called
independently of the main Flash
                                        “friendsMenu.”
movie. A movie clip has its own
timeline, which is independent
of the main Flash movie’s           To begin, you’re going to give this movie clip three labeled keyframes, one for each state
timeline.                           of the menu.

                                    78. Select the first keyframe, the default keyframe, and in the Properties Panel, assign the
                                        frame label “normal” to this keyframe. In the Actions Panel add the action:

                                               stop();

                                    79. Insert a second keyframe on Frame 5 by right-clicking or Ctrl+clicking (Mac) on Frame
                                         5 an choosing “Insert Blank Keyframe.” Label this keyframe “highlight”

                                    80. Insert a third keyframe on Frame 10 and label it “menu”

                                    81. Right-click on frame 15 and choose “Insert Frame” (not keyframe) to add some blank
                                         space after frame 10 so that you can read its label.

                                    Next you’re going to add the appropriate artwork to each keyframe:

                                    82. On the first keyframe, drag the image “friendsmenu1.png” from the library onto the
                                        stage. In the Properties Panel, change both its X and Y coordinates to “0” so it is placed
                                        right in the corner.

                                    83. On the second keyframe, “highlight,” drag “friendsmenu2.png” onto the Stage and
                                        change its coordinates to 0,0.

                                    84. On the third keyframe, “menu,” drag “friendsmenu3.png” onto the Stage and change its
                                        coordinates to 0,0.




18 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
Add a trigger button that controls the menu
To make this menu interactive, you’re going to add a button to it that toggles between
the states you created when the user interacts with it.

85. Insert a new layer called, “Trigger.”

86. Drag an invisible button onto the first keyframe of the “Trigger” layer—over the menu
    label area.

Notice that this button’s appearance spans multiple keyframes in the other layer, which
means it will persist, along with its code, while the artwork changes underneath.

So WHEN do you want this trigger to respond and WHAT do you want to happen?

    •    If the user mouses over this trigger—on(rollOver)—you want the Movie Clip to
         go to the “highlight” state—gotoAndStop(“highlight”);

    •    If the user’s mouse leaves the trigger—on(rollOut)—you want it to return to the
         “normal” state—gotoAndStop(“normal”);

    •    If the user clicks the trigger—on(press)—you want it to go to the open “menu”
         state—gotoAndStop(“menu”);

What about the “WHICH” part? It is not needed, because whenever you add actions
WITHIN a movie clip, they will act on the local timeline by default, NOT the main, _root
timeline. In fact, wherever you add actions, there is always a default target, so if you are
certain that the default is correct, you don’t need to add a target path.




                                                                           Quick and Easy Flash Prototyping | Alexa Andrzejewski | 19
87. Select the button, and in the Actions Panel, add the following script:

                                              on(rollOver) {
                                                gotoAndStop(“highlight”);
                                              }
                                              on(rollOut) {
                                                gotoAndStop(“normal”);
                                              }
                                              on(press) {
                                                gotoAndStop(“menu”);
                                              }




                                    When the menu is open, you want the interactions to change slightly. When the menu is
                                    showing, you want pressing the button to make it go away.

                                    88. Insert a keyframe in the “Trigger” layer above the frame labeled “menu.”

                                    89. Select the invisible button and replace the existing script with the following script
                                        (remember, since this is a new keyframe, deleting the script here won’t affect previous
                                        frames):

                                              on(press) {
                                                gotoAndStop(“highlight”);
                                              }




20 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
90. On this same keyframe, drag an invisible button over the “All Friends” option in the
    menu. Select this button, and in the Actions Panel add the following script:

        on(press) {
          gotoAndStop(“W09”);
        }

91. Add a target path to the action so that Flash knows you’re addressing the MAIN                 Actions triggered within a
                                                                                                   Movie Clip act on the local
     timeline, not this movie clip’s timeline:
                                                                                                   timeline, not the main timeline,
                                                                                                   unless otherwise specified using
        on(press) {                                                                                target paths.
          _root.gotoAndStop(“W09”);
        }

92. There is one action that you might want to happen on the local timeline, however—
    when you select an item, you want this menu to go away. So you can additionally add
    the local action:

        on(press) {
          _root.gotoAndStop(“W09”);
          gotoAndStop(“normal”);
        }




                                                                          Quick and Easy Flash Prototyping | Alexa Andrzejewski | 21
93. Return to the main movie by clicking “Scene 1” or the Back Arrow in the Edit Bar.

                                    Add an instance of your FriendsMenu to the main timeline/stage
                                    Now that you’ve created your movie clip, you want to add it to the main stage.

                                    94. Drag an instance of “FriendsMenu” onto the main stage on the “Interaction” layer,
                                        frame “W08,” positioning it so that it overlays the Friends Menu in the wireframe.




                                    95. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). Click through the prototype,
                                        and when you get to frame “W08,” test the Friends Menu.

                                    Creating a Combo-Box Toggle
                                    Add and customize a combo box component

                                    Next you’re going to create a combo box that can be used to toggle between frames.

                                    96. On your main timeline, insert a new layer called “Combo Box.” Insert a keyframe on
                                        frame “W09” of this layer.

                                    97. From the Components Panel, drag a “Combo Box” component onto the stage and
                                        position/resize it using the Free Transform tool so that it covers the “Show: All
                                        Friends” combo box in wireframe W09.



22 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
98. With this combo box selected, open the “Parameters” tab in the Properties Panel.

99. To define the combo box options, double-click on the field labeled, “Labels.” A dialog
    should appear that lets you set values for these labels.

100. Enter the following labels, one per row (use the “+” button to add additional rows)—
    All Friends; Recently Updated; Recently Added; Online Now—and press “OK.”




                                                                          Quick and Easy Flash Prototyping | Alexa Andrzejewski | 23
Add interactivity to your combo box
                                    So what do you want the combo box to do? Ask yourself the three questions.

                                         •    WHAT do you want to happen? You want to find out which item is selected and
                                              to send the main movie to the appropriate frame.

                                         •    WHICH movie do you want to be affected? The main movie—_root—not the
                                              combo box itself—which is actually a fancy movie clip.

                                         •    WHEN should it happen? Whenever the user selects an item from the combo
                                              box—on(change) { }

                                    To do this, you’re going to use if statements to evaluate the “selectedIndex” property of
                                    the combo box, just like you used an if statement earlier to see whether a checkbox was
                                    selected or not. “Selected Index” refers to the row number of the label, starting with 0.

                                         •    If the selected index is equal to 1, which corresponds with “Recently Updated,”
                                              you want to tell the main movie—_root—to go to “W10.”

                                         •    If the selected index is equal to 0, which corresponds with “All Friends,” you
                                              want the main movie to go to “W09.”

                                    101. With the combo box selected, add this script to it using the Actions Panel:

                                             on(change) {
                                               if(selectedIndex == 1) {
                                                   _root.gotoAndStop(“W10”);
                                               }
                                               if(selectedIndex == 0) {
                                                   _root.gotoAndStop(“W09”);
                                               }
                                             }

                                    102. This combo box should only appear until Frame 11, so insert a blank keyframe on the
                                        “Combo Box” layer above frame “W11” to end the combo box’s appearance on the
                                        stage appropriately.




                                    103. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). Click through the
                                        prototype, and when you get to frame “W09,” test out the combo box. When you
                                        select “Recently Updated,” it should go to “W10,” and when you select “All Friends,” it
                                        should return you to “W09.”




24 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
Simulating Type-Ahead Search
Adding a text field that spans multiple wireframes
104. Add a new layer (“Fields 1”) and insert a keyframe above “W13.” Drag a Text Input
    component over the College/University text field in the wireframe. In the Properties
    Panel, name this instance of the component, “collegeText.”

105. If you click through the next few frames, you'll see that this field persists while the
    wireframes in the background change but appears out of place on “W22.” Insert a
    blank keyframe at “W22” to end its appearance here.

Creating a type-ahead effect

Dynamically displaying recommendations as a user types has become increasingly
popular in rich internet applications. Simulating this involves the following interactions:

    1.   As the user types each character of a particular word, the suggestions are
         narrowed.

    2.   As the user backspaces characters, the suggestions are broadened.

    3.   If the user presses “Enter” when the desired result is highlighted, the field is
         populated and the suggestions disappear.

    4. If the user clicks a result, the field is populated and the results disappear.

To simulate this, you’ll need to have chosen the word the user should be typing and
created screens showing each state of the results. (How would it appear after the first
letter? The second letter?)

Then, to simulate the first two interaction requirements, you need to add a script to the
text field that tells the main movie (_root) to go to appropriate frame depending on what
has been typed.To do this, you’re going to use a series of “if statements” to check if what
the user has typed—the “text” property of text fields—matches certain triggers. It should
check every time the value of the text field changes—on(change).

    •    The most specific statement should be first—if the user has typed “carn” or
         anything more specific (two pipes—“||”—mean “or” in ActionScript), then have
         the main movie—_root—go to “W18.”

    •    Otherwise (“else” means “otherwise” in ActionScript), if the user has typed
         “car,” the next most specific statement, then have the main movie go to “W17.”

    •    Otherwise, if the user has typed “ca,” then the main movie should go to “W16.”

    •    Otherwise, if the user has typed “c,” then the main movie should go to “W15.”

    •    Otherwise, if the user has typed nothing or anything other than the
         aforementioned triggers, the main movie should go to “W14.”

106. Go to any frame where the text field appears and click on it. Remember that any
    changes you make to this text field will apply for the duration of the text field’s
    appearance on the stage.




                                                                              Quick and Easy Flash Prototyping | Alexa Andrzejewski | 25
107. In the Actions pane, add this script:

                                              on(change) {
                                                     if (text == "carn" || text == "carne" || text == "carneg" || text == "carnegi"
                                                     || text == "carnegie" || text == "Carnegie Mellon") {
                                                               _root.gotoAndStop("W18");
                                                     }
                                                     else if (text == "car") {
                                                               _root.gotoAndStop("W17");
                                                     }
                                                     else if (text == "ca") {
                                                               _root.gotoAndStop("W16");
                                                     }
                                                     else if (text == "c") {
                                                               _root.gotoAndStop("W15");
                                                     }
                                                     else {
                                                               _root.gotoAndStop("W14");
                                                     }
                                              }

                                    To simulate the third interaction requirement—“if the user presses “Enter” when the
                                    desired result is highlighted, the field is also populated”—you’ll need to add another part
                                    to this script. This script should instruct the movie to go to “W19” and change the text to
                                    the words “Carnegie Mellon” when the user presses “Enter”—as long as the user has
                                    typed enough appropriate characters.

                                    Add below the existing script:

                                              on(enter) {
                                                      if (text == "carn" || text == "carne" || text == "carneg" || text ==
                                                      "carnegi" || text == "carnegie") {
                                                                text = "Carnegie Mellon";
                                                                _root.gotoAndStop("W19");
                                                      }
                                              }

                                    To simulate the final interaction requirement—if the user clicks a result, the field is
                                    populated and the results disappear—you’re going to return to the “Interaction” layer.
                                    Add an invisible button on frame “W18” that, when clicked, changes the text property of
                                    the text field (which you named “collegeText”) to “Carnegie Mellon” and sends the main
                                    movie to frame “W19.”

                                    108. Click on frame “W18” in the “Interaction” layer.

                                    109. Drag and resize/position an invisible button over the highlighted recommendation.

                                    You can not only evaluate properties of objects using ActionScript, the way you did with
                                    the checkbox earlier, you can actually change properties. In this case, you’re going to
                                    change the “text” property to the completed phrase. But you can also change X/Y
                                    coordinates, colors, and other properties of objects simply by using the property name
                                    and a single equals sign. Use the Flash documentation to learn about available properties.




26 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
110. Add this script to the invisible button. Since the invisible button is independent of the
     text field, you’ll need to target the text field specifically, using its instance name as the
     path, in order to change the value of its “text” property.

         on(release) {
                 collegeText.text = "Carnegie Mellon";
                 gotoAndStop("W19");
         }




111. Test the movie. As you type (or backspace) "carnegie" (in all lowercase letters), the
     type-ahead should appear to be working. When you press enter or click on the
     recommendations area, it should change the text to "Carnegie Mellon."

Adding a few finishing touches
First, add another combo box that loads a particular frame, just as you did above:

112. Add a new layer (“Fields 2”) and insert a keyframe above “W19.” Drag a Combo Box
     component over the “Attended For” field.

113. In the Parameters Panel, double-click on the “Labels” field and add three rows/labels:
     A blank row, “College,” and “Graduate School.”

114. Add an action to the combo box that instructs the main movie—_root—to go to frame
     “W20” if the third item (selectedIndex == 2, which corresponds to “Graduate School”)
     is selected. To do this, with this combo box selected, go to the Actions pane and add
     this script:

         on(change) {
                if (selectedIndex == 2) {
                          _root.gotoAndStop("k");
                }
         }




                                                                               Quick and Easy Flash Prototyping | Alexa Andrzejewski | 27
Finally, add a few more text fields. While these fields don’t really do anything, they add to
                                    the realism of the prototype.

                                    115. On the “Fields 2” layer, frame “W21,” add a text field component for “Concentration”
                                         and insert a blank keyframe at “W22” to end its appearance.

                                    116. The final text field, for “Second Concentration,” appears on only one frame, so you can
                                         add it to the “Interaction” layer. On the “Interaction” layer, go to frame “W21” and add
                                         this final text field.

                                    117. Test your movie. You should be able to complete all of the annotated steps!

                                    Exporting your prototype
                                    To make a version of the prototype that is not annotated, you’ll need to have created
                                    another set of wireframe images with the exact same filenames as the annotated versions.
                                    To import these replacement wireframes:

                                    118. Go to “File > Import > Import to Library” and import all of the final wireframe images—
                                         from the folder SourceImages_Final—at once (use Shift+select, Ctrl+A, or +A
                                         [Mac]) to select all). Since the names of these wireframes match the names of the
                                         wireframes you imported previously, Flash will ask you whether you want to replace
                                         the existing items. Since this is exactly what you want, select “Replace existing items”
                                         and press “OK.”

                                    119. Go to File > Publish Settings. Choose “Windows Projector” or “Macintosh Projector”
                                         (or both), enter a file name, and press “Publish” to create a standalone, self-executing
                                         file of your prototype. It will be created in whatever folder the Flash file is in.

                                    Congratulations! Using only the principles learned in this tutorial, you can
                                    create quite robust prototypes. All it takes is resourcefulness, creativity
                                    and experimentation. Happy prototyping!




28 | Quick and Easy Flash Prototyping | Alexa Andrzejewski

Contenu connexe

Tendances

File 1 proteus tutorial for digital circuit design
File 1 proteus tutorial for digital circuit designFile 1 proteus tutorial for digital circuit design
File 1 proteus tutorial for digital circuit designSanjeev Singh
 
120 tips about_photoshop
120 tips about_photoshop120 tips about_photoshop
120 tips about_photoshopGalmher
 
Green My Place Game7 Switch Search
Green My Place Game7 Switch SearchGreen My Place Game7 Switch Search
Green My Place Game7 Switch SearchBen Cowley
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is nearBartlomiej Filipek
 
Phim Tat Trong Excel
Phim Tat Trong ExcelPhim Tat Trong Excel
Phim Tat Trong Excelguest3c41775
 
The games factory 2 alien wars
The games factory 2 alien warsThe games factory 2 alien wars
The games factory 2 alien warsChaffey College
 
Fps tutorial 1
Fps tutorial 1Fps tutorial 1
Fps tutorial 1unityshare
 
Official keyboard shortcuts for Windows 8 from Microsoft
Official keyboard shortcuts for Windows 8 from MicrosoftOfficial keyboard shortcuts for Windows 8 from Microsoft
Official keyboard shortcuts for Windows 8 from MicrosoftMohammed Muchhala
 
Express pcb tutorial
Express pcb tutorialExpress pcb tutorial
Express pcb tutorialawazapki
 
Game maker walkthrough
Game maker walkthroughGame maker walkthrough
Game maker walkthroughLewisB2013
 
Fps tutorial 2
Fps tutorial 2Fps tutorial 2
Fps tutorial 2unityshare
 
Final design
Final designFinal design
Final designBek999
 
Windows keyboard shortcuts
Windows keyboard shortcutsWindows keyboard shortcuts
Windows keyboard shortcutsNirmal Pati
 

Tendances (18)

File 1 proteus tutorial for digital circuit design
File 1 proteus tutorial for digital circuit designFile 1 proteus tutorial for digital circuit design
File 1 proteus tutorial for digital circuit design
 
Scratch referenceguide14
Scratch referenceguide14Scratch referenceguide14
Scratch referenceguide14
 
120 tips about_photoshop
120 tips about_photoshop120 tips about_photoshop
120 tips about_photoshop
 
Green My Place Game7 Switch Search
Green My Place Game7 Switch SearchGreen My Place Game7 Switch Search
Green My Place Game7 Switch Search
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is near
 
Phim Tat Trong Excel
Phim Tat Trong ExcelPhim Tat Trong Excel
Phim Tat Trong Excel
 
Production Log
Production LogProduction Log
Production Log
 
The games factory 2 alien wars
The games factory 2 alien warsThe games factory 2 alien wars
The games factory 2 alien wars
 
Fps tutorial 1
Fps tutorial 1Fps tutorial 1
Fps tutorial 1
 
Official keyboard shortcuts for Windows 8 from Microsoft
Official keyboard shortcuts for Windows 8 from MicrosoftOfficial keyboard shortcuts for Windows 8 from Microsoft
Official keyboard shortcuts for Windows 8 from Microsoft
 
Express pcb tutorial
Express pcb tutorialExpress pcb tutorial
Express pcb tutorial
 
Game maker walkthrough
Game maker walkthroughGame maker walkthrough
Game maker walkthrough
 
Fps tutorial 2
Fps tutorial 2Fps tutorial 2
Fps tutorial 2
 
Swing
SwingSwing
Swing
 
Dip trace tutorial
Dip trace tutorialDip trace tutorial
Dip trace tutorial
 
Final design
Final designFinal design
Final design
 
Windows keyboard shortcuts
Windows keyboard shortcutsWindows keyboard shortcuts
Windows keyboard shortcuts
 
XNA coding series
XNA coding seriesXNA coding series
XNA coding series
 

Similaire à Flash Prototyping Workbook - Part 1 and 2

Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01momayabhavana
 
Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01bhavanalm
 
Quick Step by Step Flash Tutorial
Quick Step by Step Flash TutorialQuick Step by Step Flash Tutorial
Quick Step by Step Flash TutorialSu Yuen Chin
 
Game salad creator for windows manual 2012 11-01
Game salad creator for windows manual 2012 11-01Game salad creator for windows manual 2012 11-01
Game salad creator for windows manual 2012 11-01gabikovacs10
 
Rocket Editor (Recovered).pptx
Rocket Editor (Recovered).pptxRocket Editor (Recovered).pptx
Rocket Editor (Recovered).pptxSkyknightBeoulve1
 
Lesson 1 second quarter Office 2007 format
Lesson 1 second quarter Office 2007 formatLesson 1 second quarter Office 2007 format
Lesson 1 second quarter Office 2007 formatCel Mallari
 
Flash cs4 tutorials_2009
Flash cs4 tutorials_2009Flash cs4 tutorials_2009
Flash cs4 tutorials_2009techbed
 
Intro to premier pro
Intro to premier proIntro to premier pro
Intro to premier proLouise Sands
 
How tomakea gameinunity3d
How tomakea gameinunity3dHow tomakea gameinunity3d
How tomakea gameinunity3dDao Tung
 
[Pro forma] - production log
[Pro forma] - production log[Pro forma] - production log
[Pro forma] - production logcharles-stick
 
Learning flash by Ms. Payal Narula
Learning flash by Ms. Payal Narula Learning flash by Ms. Payal Narula
Learning flash by Ms. Payal Narula kulachihansraj
 
Basic After Effect & Animation GIF (J&T Express)
Basic After Effect & Animation GIF (J&T Express)Basic After Effect & Animation GIF (J&T Express)
Basic After Effect & Animation GIF (J&T Express)IzzuwanIsmail
 
Mv process log form 2019 (2)
Mv process log form 2019 (2)Mv process log form 2019 (2)
Mv process log form 2019 (2)EllieJones40
 
Introduction to programming using Visual Basic 6
Introduction to programming using Visual Basic 6Introduction to programming using Visual Basic 6
Introduction to programming using Visual Basic 6Jeanie Arnoco
 
Idiots guide-to-photoshop
Idiots guide-to-photoshopIdiots guide-to-photoshop
Idiots guide-to-photoshopMarcela Conroy
 
10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx
10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx
10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docxpaynetawnya
 

Similaire à Flash Prototyping Workbook - Part 1 and 2 (20)

Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01
 
Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01Flashworkshop 090317231102-phpapp01
Flashworkshop 090317231102-phpapp01
 
Flash
FlashFlash
Flash
 
Quick Step by Step Flash Tutorial
Quick Step by Step Flash TutorialQuick Step by Step Flash Tutorial
Quick Step by Step Flash Tutorial
 
Game salad creator for windows manual 2012 11-01
Game salad creator for windows manual 2012 11-01Game salad creator for windows manual 2012 11-01
Game salad creator for windows manual 2012 11-01
 
Apps in a Flash HCI
Apps in a Flash HCIApps in a Flash HCI
Apps in a Flash HCI
 
Rocket Editor (Recovered).pptx
Rocket Editor (Recovered).pptxRocket Editor (Recovered).pptx
Rocket Editor (Recovered).pptx
 
Lesson 1 second quarter Office 2007 format
Lesson 1 second quarter Office 2007 formatLesson 1 second quarter Office 2007 format
Lesson 1 second quarter Office 2007 format
 
Flash
FlashFlash
Flash
 
Flash cs4 tutorials_2009
Flash cs4 tutorials_2009Flash cs4 tutorials_2009
Flash cs4 tutorials_2009
 
Intro to premier pro
Intro to premier proIntro to premier pro
Intro to premier pro
 
How tomakea gameinunity3d
How tomakea gameinunity3dHow tomakea gameinunity3d
How tomakea gameinunity3d
 
[Pro forma] - production log
[Pro forma] - production log[Pro forma] - production log
[Pro forma] - production log
 
Learning flash by Ms. Payal Narula
Learning flash by Ms. Payal Narula Learning flash by Ms. Payal Narula
Learning flash by Ms. Payal Narula
 
Basic After Effect & Animation GIF (J&T Express)
Basic After Effect & Animation GIF (J&T Express)Basic After Effect & Animation GIF (J&T Express)
Basic After Effect & Animation GIF (J&T Express)
 
L5 kongl
L5 konglL5 kongl
L5 kongl
 
Mv process log form 2019 (2)
Mv process log form 2019 (2)Mv process log form 2019 (2)
Mv process log form 2019 (2)
 
Introduction to programming using Visual Basic 6
Introduction to programming using Visual Basic 6Introduction to programming using Visual Basic 6
Introduction to programming using Visual Basic 6
 
Idiots guide-to-photoshop
Idiots guide-to-photoshopIdiots guide-to-photoshop
Idiots guide-to-photoshop
 
10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx
10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx
10.USING THE ECLIPSE DEBUGGERupdated 8618This t.docx
 

Dernier

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Dernier (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Flash Prototyping Workbook - Part 1 and 2

  • 1.
  • 2.
  • 3. You create actors… While you work through this tutorial, you can download the files for Part 2 and 3 if you haven’t already: http://uxweek.com/slides/FlashWorkshopFiles.zip The purpose of this initial exercise is to get you comfortable with the Flash metaphor: You create actors. You place them on the stage. You tell them what to do. Create an animated actor (symbol) ActionScript 2.0 is more direct 01. Create a new Flash File that uses ActionScript 2.0. and intuitive for non- programmers than the latest version, ActionScript 3.0 When 02. From the menus, choose Window > Workspace > Default so we’re all using the same working in ActionScript 2.0, Workspace. (You can close the Color and Swatches panel on the right.) you’ll want to make sure that tutorials and scripts you find are compatible. 03. Right-click or Ctrl+click in the empty Library panel and choose “New Symbol…” Symbols are objects that can be 04. Name the new symbol, “Bug” and make “Movie Clip” is selected. Press “OK.” used and reused. They are similar to Shapes in Visio and Stencils in Omnigraffle. You can name symbols anything you want—case does not matter. Movie Clips are objects that act independently of the main Flash movie. A movie clip has its own timeline, which is independent of the main Flash movie’s timeline. The Edit Bar (Navigation Area) 05. Notice that the breadcrumbs in the Edit Bar/Navigation Bar tell you that you’re indicates which timeline you are currently viewing the stage and timeline for “Bug.” currently viewing. The Stage is your visual 06. On the stage that appears, use the drawing tools on the left to draw a bug. (You’ll workspace or canvas. This is probably use the Shapes/Oval Tool, Pencil and Line/Fill Colors to draw it.) where you specify where objects will appear. The Timeline is where you define when objects appear or disappear from the stage. The timeline contains frames and keyframes which can be on multiple, independent layers. Frames are displayed as blocks. They are grey when they contain content and white when they are empty. Keyframes are frames marked with circles or dots. A keyframe is a frame where a change can occur without affecting the previous frames. Changes made on keyframes persist until the next keyframe unless tweening is used to fill in the blanks. 2 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 4. 07. You’ve just created the first keyframe of your bug actor. To animate your bug, you’re going to add another keyframe with the bug in a slightly different pose. In the Timeline, right-click or Ctrl+click on the second frame and select “Insert Keyframe.” 08. The new keyframe should now be selected, and by default, it contains a copy of whatever was in the previous frame. (It’s like cellular division.) But since this is a new keyframe, you can change the graphic here without affecting the previous frame. Using the white pointer tool (the Subselection Tool), select each of your bug’s legs and use the pointer to change each leg’s position. 09. Click on the first frame in the timeline, and you should see your bug’s legs are still in the original positions. Click the second frame again to see the new position. 10. To preview your animation, open the Control menu and make sure “Loop Playback” is checked. 11. Press the Enter/Return key to play the animation. Press again to stop. 12. Click “Back” in the Navigation Bar to return to the main stage and timeline. Quick and Easy Flash Prototyping | Alexa Andrzejewski | 3
  • 5. You place them on the stage… Add an instance of your actor to the main stage Instances are unique 13. Notice that your “Bug” appears in the Library Panel. occurrences of symbols in your Flash movie. You can place as many instances of a library item 14. Drag an instance of “Bug” onto the main stage. into your movie as you would like. If you update the library item, all of its instances will be updated as well, although the size and position may vary. The Properties Panel is 15. In the Properties Panel, where it says <Instance Name>, give this unique instance of context-sensitive—it shows and your bug a unique and proper name, for example: “Bob” allows you to set properties for the last frame or instance that you selected. The Properties Panel is where you can assign You tell them what to do… frame labels to frames and instance names to instances. Make your actor move across the stage 16. Move “Bob” into his starting position—in the off-stage area to the left of the stage. 4 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 6. 17. Next you’re going to insert a keyframe that represents Bob’s final position. You want there to be some time between the starting position and final position, so Right-Click or Ctrl+Click on approximately the 50th frame and choose “Insert Keyframe.” 18. Making sure this new keyframe is selected, move Bob into his final position—off-stage, to the right. 19. Press the Enter/Return key to play the animation. Your bug should pause and then jump to the final position for a moment. Press again to stop. 20. Flash can automatically create a transition between keyframes for you. Filling in the frames between two points is called “Tweening.” Select the first keyframe, and in the Properties Panel, from the Tween menu select “Motion.” In the timeline, an arrow should now span the gap between the starting keyframe and the ending keyframe. 21. Press the Enter/Return key to play your movie. Bob should glide smoothly from his starting point to his ending point. Quick and Easy Flash Prototyping | Alexa Andrzejewski | 5
  • 7. 22. What about the moving legs? Pressing “Enter” only plays the current timeline. To view your movie as your audience will see it, with both timelines running independently and simultaneously, press Ctrl+Enter on PC, +Enter on Mac. Make your actor respond to user input 23. Now you’re going to add some interactivity to Bob. You’re going to make him stop moving across the stage when pressed and start again when released. 24. Select the first keyframe and select the bug on the stage, “Bob.” The Actions Panel is context- 25. Open the Actions panel by going to "Window > Actions.” sensitive—it shows and allows you to add scripts to the last frame or instance that you 26. When adding interactivity to an object, you want to ask yourself three questions. selected. Look at the tab name near the bottom of the Actions • WHEN do you want something to happen? Panel to verify what you are adding actions to. (You want something to happen when the user presses or releases the bug.) • WHICH object or timeline do you want it to happen to? (You want the main timeline and stage, which he moves across, to be affected.) • WHAT do you want to happen? (You want the main timeline to stop playing when the bug is pressed and to start playing when the bug is released.) Event Handlers are used to 27. To specify WHEN actions should occur, add the following bits of code, called “Event specify behaviors that trigger Handlers,” to “Bob” using the Actions panel: actions. Actions contained within an event handler’s curly braces will be triggered only on(press) { when the event preceding them occurs (e.g., when an button is pressed and when it’s released). } Target Paths are like web URLs on(release) { or file paths, only they use dots (.) instead of slashes to indicate hierarchy. } Functions are built-in actions 28. To specify WHICH timeline you want to stop, in our case, the main timeline, which is that you can call on using referred to as “_root,” type its “Target Path” within the event handler’s curly braces: keywords. These commands are keywords followed by parentheses in which specific on(press) { details can be added when _root. necessary or relevant. } on(release) { _root. } 29. To specify WHAT should happen, add the following keyword commands, called “Functions,” to the ends of the target paths: on(press) { _root.stop() } on(release) { _root.play() } 6 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 8. 30. Finally, end every “phrase” of code with a semicolon (generally used at the end of every line of code) so that your final script reads as follows: on(press) { _root.stop(); } on(release) { _root.play(); } 31. Test your movie (Ctrl+Enter on PC, +Enter on Mac) and try pressing and holding your bug. Then try releasing your bug. 32. If you additionally want to make Bob’s legs stop moving when pressed, you can add an additional line of code to each Event Handler. This code uses a Target Path to address Bob’s timeline and tell it to stop as well: on(press) { _root.stop(); _root.Bob.stop(); } on(release) { _root.play(); _root.Bob.play(); } 33. Test your movie (Ctrl+Enter on PC, +Enter on Mac) again when finished. Congratulations! As silly as this tutorial may seem, the basics you’ve just covered are all you need to know to create a basic click-through prototype using Flash! Quick and Easy Flash Prototyping | Alexa Andrzejewski | 7
  • 9. 8 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 10.
  • 11. Setting Up Your Prototype Getting started… 34. Open FlashPrototyping_WorkshopTemplate.fla 35. Notice that numbered screen images from Facebook have been placed on the “Wireframes” layer in the Timeline, one per keyframe. If you select each keyframe, you’ll see a different image. An additional layer, “Interaction,” with one blank keyframe per wireframe has been added. Frame Labels can be assigned 36. Select one of the keyframes on the “Wireframes” layer. Look at the Properties Panel to keyframes so that they can be and note that it’s been given a label. referred to using ActionScript. It is generally better to refer to frame labels in ActionScript Add script to the first frame to keep the movie from automatically playing than to frame numbers because frame numbers are subject to change as you add or remove 37. Insert a new layer and rename it, “Frame Actions.” frames. 38. Open the Actions Panel (Window > Actions) if it’s not already. 39. Select the first keyframe in this new layer. Frame Actions are attached to 40. With the first keyframe selected, type the following function in the Actions Panel: keyframes and are triggered when that frame is reached. stop(); Create an invisible, reusable button 41. Right-click or Ctrl+click in the empty Library panel and choose “New Symbol…” 42. In the dialog that appears, name it "invisibleButton" and choose the type "Button." 43. Notice in the Edit Bar that you are now editing “invisibleButton.” 10 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 12. 44. Notice that this button’s “timeline” consists of four labeled frames. Each frame represents a unique button state. Typically, a button has three visible states—up (normal), over (rollover) and down (pressed)—plus an invisible state, called “Hit,” which you use designate the clickable area of a button. To make a button invisible, you’ll only create this invisible state. 45. Right-click or Ctrl+click (Mac) on the frame labeled, “Hit” and choose “Insert Keyframe.” 46. Using the Rectangle Tool and Fill Color picker if necessary, draw a solid-colored, button-sized box on this keyframe. 47. In the Edit Bar, click the Back Arrow or "Scene 1" to go back to the main movie. 48. Your "invisibleButton" symbol should appear in the Library Panel. Create a Basic Click-through Create a basic click-through using invisible buttons 49. Make sure the Wireframes and Frame Actions layers are locked. Quick and Easy Flash Prototyping | Alexa Andrzejewski | 11
  • 13. 50. Select the first keyframe of the Interaction layer. 51. Drag an instance of the invisibleButton onto the stage and drop it over the “Edit” button in the first wireframe. It should appear as a transparent, blue area. Use the Free Transform Tool to make it cover just the area that should be clickable. 52. Next you’re going to make the button interactive. Remembering the questions your script needs to answer (WHEN? WHICH? WHAT?), type the following script in the Actions Panel: on(release) { _root.gotoAndStop(“W02”); } 53. Note that the function that tells Flash to go to the frame specified in parentheses— gotoAndStop(“FRAME LABEL”)—is placed inside of the event handler—on(release) { } 12 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 14. 54. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). You should be able to click on the invisible button go to frame W02. 55. For the next several keyframes, through W08, wherever you see a green, “go to X” callout, add an invisible button with the appropriate script. You can copy and paste the button you’ve already created, simply changing the destination frame label in the Actions Panel. 56. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). You should be able to follow the trail of green callouts. Simulating Error Handling with Conditional Buttons Add a checkbox from the components library and give it a name 57. Select the keyframe in the “Interaction” layer above the frame labeled “W05.” (Technically, frame labels apply to all layers.) 58. Open the Components library (Window > Components). The Components Panel contains a special library of user interface objects, such as radio 59. In the “User Interface” folder, you’ll find the CheckBox component. Drag it onto the buttons and combo boxes, that screen and place it on top of the check box in the wireframe. have customizable properties. These properties can be edited in the Parameters tab of the Properties Panel and/or changed using ActionScript. 60. In the Properties tab, give the Instance Name, “termsBox” to this checkbox. Quick and Easy Flash Prototyping | Alexa Andrzejewski | 13
  • 15. 61. With the check box selected, in the Properties Panel, click the Parameters Tab. Select the “Label” field in the Parameters Tab and delete the label text. The Parameters Tab of the Properties Panel is where you can edit the special properties of components. Each property is listed on a separate line. Create an invisible button that checks whether the checkbox is selected or not and sends the prototype to a confirmation or error screen accordingly 62. Drag an invisible button over the "Upload Picture" button on frame “W05.” 63. Select this button, and in the Actions Panel, add an event handler: on(release) { } The If Statement describes a 64. Within this event handler, you’re going to add a conditional statement, an “If condition that must be met for Statement,” that checks whether “termsBox” is selected. certain action(s) to be performed. It can optionally be followed by an “else” statement on(release) { specifies what to do otherwise. if(CONDITION) { // If the condition in parentheses is met // perform all actions in curly braces. } else { // Otherwise // do these actions. } } 65. Place your cursor between the parentheses in the IF statement. (Delete the word “CONDITION” if you typed it here.) Target Paths are like web URLs 66. To address the checkbox you created, you will need to use its target path. Rather than or file paths, only they use dots typing it in, you can press the “Insert Target Path” icon in the Actions Panel to see (.) instead of slashes to indicate hierarchy. the named elements of your movie listed in hierarchical order. Select “termsBox.” 67. Choose “Absolute,” not “Relative,” to inset the complete path. Press “Ok.” 68. “_root.termsBox” should have been inserted into your IF statement, as shown: if(_root.termsBox) { 14 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 16. 69. Look again at the Parameters tab in the Properties panel. Notice that there are several Properties of an object are special properties of Combo Box components, including “label,” which you edited special keywords that Flash earlier, and “selected.” You can have Flash find out what the current value is of any of recognizes. They are case sensitive. You can evaluate or these properties by adding the appropriate keyword to the path. To have Flash find out change properties of an object whether “selected” is true or false, simply add “selected” to the end of the path, as in: using ActionScript. if(_root.termsBox.selected) { 70. You want to check whether “selected” is currently “true” or not. To test whether Operators are used in If Statements to compare one something is equal to something else, you’ll use the “equals” operator, which consists value to another in the format, of two equals signs. Your condition will read: “if(x OPERATOR y).” on(release) { Common operators are: if(_root.termsBox.selected == true) { == equals > is greater than } < is less than else { != is not equal to <= is less than or equal to >= is greater than or equal to } } 71. Finally, add the actions that should happen when the condition is met and the actions that should happen otherwise, as shown: on(release) { if(_root.termsBox.selected == true) { _root.gotoAndStop("W07"); } else { _root.gotoAndStop("W06"); } } Repeat these steps on W06 with a new checkbox and button, making sure the actions go on the button, not the checkbox 72. Go to keyframe “W06”—the error state page—and add a new checkbox component. 73. Give this checkbox the instance name “termsBox2.” 74. Add another invisible button over the “Upload Picture” button. 75. Add the following script to this button (remember, the script goes on the button, not the checkbox!). You don’t need an “else” statement since if the condition isn’t met, you just want it to stay on this error page. on(release) { if(_root.termsBox2.selected == true) { _root.gotoAndStop("W07"); } } 76. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). Quick and Easy Flash Prototyping | Alexa Andrzejewski | 15
  • 17. 16 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 18.
  • 19. Independent Movie Clips Create a flyout menu using a new, independent movie clip Using what you’ve learned so far, you’re now going to create a new, independent “actor”—just like Bob, with his independently moving legs—featuring a working flyout menu. This menu actor should: • Highlight upon rollover. • Open when pressed. • Close if it is open and then pressed. • Close and send the main movie to a certain frame if a specific item is pressed. Movie Clips are objects that act 77. Use “Insert > New Symbol…” to create a new “Movie Clip” symbol called independently of the main Flash “friendsMenu.” movie. A movie clip has its own timeline, which is independent of the main Flash movie’s To begin, you’re going to give this movie clip three labeled keyframes, one for each state timeline. of the menu. 78. Select the first keyframe, the default keyframe, and in the Properties Panel, assign the frame label “normal” to this keyframe. In the Actions Panel add the action: stop(); 79. Insert a second keyframe on Frame 5 by right-clicking or Ctrl+clicking (Mac) on Frame 5 an choosing “Insert Blank Keyframe.” Label this keyframe “highlight” 80. Insert a third keyframe on Frame 10 and label it “menu” 81. Right-click on frame 15 and choose “Insert Frame” (not keyframe) to add some blank space after frame 10 so that you can read its label. Next you’re going to add the appropriate artwork to each keyframe: 82. On the first keyframe, drag the image “friendsmenu1.png” from the library onto the stage. In the Properties Panel, change both its X and Y coordinates to “0” so it is placed right in the corner. 83. On the second keyframe, “highlight,” drag “friendsmenu2.png” onto the Stage and change its coordinates to 0,0. 84. On the third keyframe, “menu,” drag “friendsmenu3.png” onto the Stage and change its coordinates to 0,0. 18 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 20. Add a trigger button that controls the menu To make this menu interactive, you’re going to add a button to it that toggles between the states you created when the user interacts with it. 85. Insert a new layer called, “Trigger.” 86. Drag an invisible button onto the first keyframe of the “Trigger” layer—over the menu label area. Notice that this button’s appearance spans multiple keyframes in the other layer, which means it will persist, along with its code, while the artwork changes underneath. So WHEN do you want this trigger to respond and WHAT do you want to happen? • If the user mouses over this trigger—on(rollOver)—you want the Movie Clip to go to the “highlight” state—gotoAndStop(“highlight”); • If the user’s mouse leaves the trigger—on(rollOut)—you want it to return to the “normal” state—gotoAndStop(“normal”); • If the user clicks the trigger—on(press)—you want it to go to the open “menu” state—gotoAndStop(“menu”); What about the “WHICH” part? It is not needed, because whenever you add actions WITHIN a movie clip, they will act on the local timeline by default, NOT the main, _root timeline. In fact, wherever you add actions, there is always a default target, so if you are certain that the default is correct, you don’t need to add a target path. Quick and Easy Flash Prototyping | Alexa Andrzejewski | 19
  • 21. 87. Select the button, and in the Actions Panel, add the following script: on(rollOver) { gotoAndStop(“highlight”); } on(rollOut) { gotoAndStop(“normal”); } on(press) { gotoAndStop(“menu”); } When the menu is open, you want the interactions to change slightly. When the menu is showing, you want pressing the button to make it go away. 88. Insert a keyframe in the “Trigger” layer above the frame labeled “menu.” 89. Select the invisible button and replace the existing script with the following script (remember, since this is a new keyframe, deleting the script here won’t affect previous frames): on(press) { gotoAndStop(“highlight”); } 20 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 22. 90. On this same keyframe, drag an invisible button over the “All Friends” option in the menu. Select this button, and in the Actions Panel add the following script: on(press) { gotoAndStop(“W09”); } 91. Add a target path to the action so that Flash knows you’re addressing the MAIN Actions triggered within a Movie Clip act on the local timeline, not this movie clip’s timeline: timeline, not the main timeline, unless otherwise specified using on(press) { target paths. _root.gotoAndStop(“W09”); } 92. There is one action that you might want to happen on the local timeline, however— when you select an item, you want this menu to go away. So you can additionally add the local action: on(press) { _root.gotoAndStop(“W09”); gotoAndStop(“normal”); } Quick and Easy Flash Prototyping | Alexa Andrzejewski | 21
  • 23. 93. Return to the main movie by clicking “Scene 1” or the Back Arrow in the Edit Bar. Add an instance of your FriendsMenu to the main timeline/stage Now that you’ve created your movie clip, you want to add it to the main stage. 94. Drag an instance of “FriendsMenu” onto the main stage on the “Interaction” layer, frame “W08,” positioning it so that it overlays the Friends Menu in the wireframe. 95. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). Click through the prototype, and when you get to frame “W08,” test the Friends Menu. Creating a Combo-Box Toggle Add and customize a combo box component Next you’re going to create a combo box that can be used to toggle between frames. 96. On your main timeline, insert a new layer called “Combo Box.” Insert a keyframe on frame “W09” of this layer. 97. From the Components Panel, drag a “Combo Box” component onto the stage and position/resize it using the Free Transform tool so that it covers the “Show: All Friends” combo box in wireframe W09. 22 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 24. 98. With this combo box selected, open the “Parameters” tab in the Properties Panel. 99. To define the combo box options, double-click on the field labeled, “Labels.” A dialog should appear that lets you set values for these labels. 100. Enter the following labels, one per row (use the “+” button to add additional rows)— All Friends; Recently Updated; Recently Added; Online Now—and press “OK.” Quick and Easy Flash Prototyping | Alexa Andrzejewski | 23
  • 25. Add interactivity to your combo box So what do you want the combo box to do? Ask yourself the three questions. • WHAT do you want to happen? You want to find out which item is selected and to send the main movie to the appropriate frame. • WHICH movie do you want to be affected? The main movie—_root—not the combo box itself—which is actually a fancy movie clip. • WHEN should it happen? Whenever the user selects an item from the combo box—on(change) { } To do this, you’re going to use if statements to evaluate the “selectedIndex” property of the combo box, just like you used an if statement earlier to see whether a checkbox was selected or not. “Selected Index” refers to the row number of the label, starting with 0. • If the selected index is equal to 1, which corresponds with “Recently Updated,” you want to tell the main movie—_root—to go to “W10.” • If the selected index is equal to 0, which corresponds with “All Friends,” you want the main movie to go to “W09.” 101. With the combo box selected, add this script to it using the Actions Panel: on(change) { if(selectedIndex == 1) { _root.gotoAndStop(“W10”); } if(selectedIndex == 0) { _root.gotoAndStop(“W09”); } } 102. This combo box should only appear until Frame 11, so insert a blank keyframe on the “Combo Box” layer above frame “W11” to end the combo box’s appearance on the stage appropriately. 103. Test your prototype (Ctrl+Enter on PC, +Enter on Mac). Click through the prototype, and when you get to frame “W09,” test out the combo box. When you select “Recently Updated,” it should go to “W10,” and when you select “All Friends,” it should return you to “W09.” 24 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 26. Simulating Type-Ahead Search Adding a text field that spans multiple wireframes 104. Add a new layer (“Fields 1”) and insert a keyframe above “W13.” Drag a Text Input component over the College/University text field in the wireframe. In the Properties Panel, name this instance of the component, “collegeText.” 105. If you click through the next few frames, you'll see that this field persists while the wireframes in the background change but appears out of place on “W22.” Insert a blank keyframe at “W22” to end its appearance here. Creating a type-ahead effect Dynamically displaying recommendations as a user types has become increasingly popular in rich internet applications. Simulating this involves the following interactions: 1. As the user types each character of a particular word, the suggestions are narrowed. 2. As the user backspaces characters, the suggestions are broadened. 3. If the user presses “Enter” when the desired result is highlighted, the field is populated and the suggestions disappear. 4. If the user clicks a result, the field is populated and the results disappear. To simulate this, you’ll need to have chosen the word the user should be typing and created screens showing each state of the results. (How would it appear after the first letter? The second letter?) Then, to simulate the first two interaction requirements, you need to add a script to the text field that tells the main movie (_root) to go to appropriate frame depending on what has been typed.To do this, you’re going to use a series of “if statements” to check if what the user has typed—the “text” property of text fields—matches certain triggers. It should check every time the value of the text field changes—on(change). • The most specific statement should be first—if the user has typed “carn” or anything more specific (two pipes—“||”—mean “or” in ActionScript), then have the main movie—_root—go to “W18.” • Otherwise (“else” means “otherwise” in ActionScript), if the user has typed “car,” the next most specific statement, then have the main movie go to “W17.” • Otherwise, if the user has typed “ca,” then the main movie should go to “W16.” • Otherwise, if the user has typed “c,” then the main movie should go to “W15.” • Otherwise, if the user has typed nothing or anything other than the aforementioned triggers, the main movie should go to “W14.” 106. Go to any frame where the text field appears and click on it. Remember that any changes you make to this text field will apply for the duration of the text field’s appearance on the stage. Quick and Easy Flash Prototyping | Alexa Andrzejewski | 25
  • 27. 107. In the Actions pane, add this script: on(change) { if (text == "carn" || text == "carne" || text == "carneg" || text == "carnegi" || text == "carnegie" || text == "Carnegie Mellon") { _root.gotoAndStop("W18"); } else if (text == "car") { _root.gotoAndStop("W17"); } else if (text == "ca") { _root.gotoAndStop("W16"); } else if (text == "c") { _root.gotoAndStop("W15"); } else { _root.gotoAndStop("W14"); } } To simulate the third interaction requirement—“if the user presses “Enter” when the desired result is highlighted, the field is also populated”—you’ll need to add another part to this script. This script should instruct the movie to go to “W19” and change the text to the words “Carnegie Mellon” when the user presses “Enter”—as long as the user has typed enough appropriate characters. Add below the existing script: on(enter) { if (text == "carn" || text == "carne" || text == "carneg" || text == "carnegi" || text == "carnegie") { text = "Carnegie Mellon"; _root.gotoAndStop("W19"); } } To simulate the final interaction requirement—if the user clicks a result, the field is populated and the results disappear—you’re going to return to the “Interaction” layer. Add an invisible button on frame “W18” that, when clicked, changes the text property of the text field (which you named “collegeText”) to “Carnegie Mellon” and sends the main movie to frame “W19.” 108. Click on frame “W18” in the “Interaction” layer. 109. Drag and resize/position an invisible button over the highlighted recommendation. You can not only evaluate properties of objects using ActionScript, the way you did with the checkbox earlier, you can actually change properties. In this case, you’re going to change the “text” property to the completed phrase. But you can also change X/Y coordinates, colors, and other properties of objects simply by using the property name and a single equals sign. Use the Flash documentation to learn about available properties. 26 | Quick and Easy Flash Prototyping | Alexa Andrzejewski
  • 28. 110. Add this script to the invisible button. Since the invisible button is independent of the text field, you’ll need to target the text field specifically, using its instance name as the path, in order to change the value of its “text” property. on(release) { collegeText.text = "Carnegie Mellon"; gotoAndStop("W19"); } 111. Test the movie. As you type (or backspace) "carnegie" (in all lowercase letters), the type-ahead should appear to be working. When you press enter or click on the recommendations area, it should change the text to "Carnegie Mellon." Adding a few finishing touches First, add another combo box that loads a particular frame, just as you did above: 112. Add a new layer (“Fields 2”) and insert a keyframe above “W19.” Drag a Combo Box component over the “Attended For” field. 113. In the Parameters Panel, double-click on the “Labels” field and add three rows/labels: A blank row, “College,” and “Graduate School.” 114. Add an action to the combo box that instructs the main movie—_root—to go to frame “W20” if the third item (selectedIndex == 2, which corresponds to “Graduate School”) is selected. To do this, with this combo box selected, go to the Actions pane and add this script: on(change) { if (selectedIndex == 2) { _root.gotoAndStop("k"); } } Quick and Easy Flash Prototyping | Alexa Andrzejewski | 27
  • 29. Finally, add a few more text fields. While these fields don’t really do anything, they add to the realism of the prototype. 115. On the “Fields 2” layer, frame “W21,” add a text field component for “Concentration” and insert a blank keyframe at “W22” to end its appearance. 116. The final text field, for “Second Concentration,” appears on only one frame, so you can add it to the “Interaction” layer. On the “Interaction” layer, go to frame “W21” and add this final text field. 117. Test your movie. You should be able to complete all of the annotated steps! Exporting your prototype To make a version of the prototype that is not annotated, you’ll need to have created another set of wireframe images with the exact same filenames as the annotated versions. To import these replacement wireframes: 118. Go to “File > Import > Import to Library” and import all of the final wireframe images— from the folder SourceImages_Final—at once (use Shift+select, Ctrl+A, or +A [Mac]) to select all). Since the names of these wireframes match the names of the wireframes you imported previously, Flash will ask you whether you want to replace the existing items. Since this is exactly what you want, select “Replace existing items” and press “OK.” 119. Go to File > Publish Settings. Choose “Windows Projector” or “Macintosh Projector” (or both), enter a file name, and press “Publish” to create a standalone, self-executing file of your prototype. It will be created in whatever folder the Flash file is in. Congratulations! Using only the principles learned in this tutorial, you can create quite robust prototypes. All it takes is resourcefulness, creativity and experimentation. Happy prototyping! 28 | Quick and Easy Flash Prototyping | Alexa Andrzejewski