Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Design > Adobe Creative Suite

Flash Reference Guide

📄 Contents

  1. Flash Guide 2006
  2. Welcome to the New Flash Reference Guide
  3. Flash Design Guide
  4. Introduction To Flash
  5. Working with the Authoring Tool
  6. Working with Templates
  7. FreeHand for the Power User
  8. Creating Animation with Fireworks
  9. Creating Animation in Flash
  10. Animating Text
  11. Working With Layers and Keyframes
  12. Working With Tweens
  13. Quickly Add Keyframes to Tweens
  14. Using Animation Paths
  15. Using Flash's Onion Skinning Tools
  16. Publishing Your Animation
  17. Preloading for Non-Programmers
  18. Drawing in Flash
  19. Using the Library
  20. Organizing Animations With Storyboards
  21. Working With Masks
  22. Making 2D Look 3D
  23. Working With Text
  24. Working With Input Text Fields
  25. Working With Dynamic Text
  26. Working with Text: Advanced Text Treatment With CSS
  27. Working With Text: Embedding Fonts
  28. Flash Interactive Developer Guide
  29. What is an Interactive Developer?
  30. Creating Flash Projects
  31. Using Form Applications
  32. Working with Form Components
  33. Setting up a Movie for Design and Animation
  34. Setting up a Movie for Programming
  35. Working with Components
  36. ActionScript Fundamentals
  37. Intro to Working With Arrays
  38. Understanding The Three Types of Arrays
  39. Control Data Stored in Arrays
  40. The Eolas Solution
  41. Intro to Flash Player 9
  42. Working with Strings
  43. Creating ActionScript Transitions
  44. Working with Boolean Objects in ActionScript
  45. Optimizing Delivery
  46. Working with Numbers in ActionScript
  47. Working with the Number Class
  48. Flash Professional 9 Preview
  49. Adobe Takes ActionScript Open Source
  50. Flash Rich Media Guide
  51. Pros and Cons of Flash 8 Video
  52. Using SMIL in Flash Video 8
  53. Stream an MP3 Audio File to Your Flash Movie
  54. Flash 8
  55. Introduction to Flash 8
  56. Advanced Text Rendering
  57. Using BitmapData Class in Your ActionScript
  58. The CacheAsBitmap Property
  59. Bitmap Rendering Improvements and Blend Modes
  60. Using The ExternalInterface Class
  61. Using Filters
  62. Downloading and Uploading Files with ActionScript
  63. Runtime Support for GIF and PNG Files
  64. Garbage Collection in Flash 8
  65. Using Enhanced Gradients
  66. Using Scale 9
  67. Stroke Enhancements in Flash 8
  68. Video Support in Flash 8
  69. How to Create a Slideshow
  70. Creating Dynamic Text in Flash
  71. Flash 3-D–Taking Flash to the Third Dimension!
  72. Object Collision Detection with Flash
  73. Create a Quiz With The Flash Quiz Template
  74. Working with Flash
  75. Uses for Flash
  76. Beyond Flash
  77. Flash Reference Guide
  78. Informit Articles and Sample Chapters
  79. Books
  80. Online Resources
  81. Blogs and Discussion
  82. Tools and Downloads
  83. Summary
  84. Flash MX Interface
  85. Welcome to Flash: the Designers' and Developers' Tool
  86. Using the Stage
  87. Panels, Panels Everywhere
  88. Using the Tools Pane
  89. Using the Property Inspector
  90. Using the Timeline Panel
  91. Using the Library
  92. Adding Interaction through the Actions Panel
  93. Integrating with Studio MX
  94. Saving and Publishing Flash Movies
  95. Informit Articles and Sample Chapters
  96. Books
  97. Online Resources
  98. Summary
  99. Drawing in Flash
  100. Shape Tools
  101. Applying Color
  102. Informit Articles and Sample Chapters
  103. Tools and Downloads
  104. Summary
  105. Flash Bitmaps
  106. Importing Bitmaps
  107. Exporting Bitmap Images
  108. Converting Bitmap Images to Vector Illustrations
  109. Informit Articles and Sample Chapters
  110. Online Resources
  111. Tools and Downloads
  112. Summary
  113. Flash Text and Text Fields
  114. Text Types
  115. Input Text
  116. Online Resources
  117. Tools and Downloads
  118. Summary
  119. Using the Library
  120. Library Organization
  121. Creating Instances
  122. Informit Articles and Sample Chapters
  123. Books
  124. Online Resources
  125. Summary
  126. Flash Animation
  127. Controlling Time
  128. Keyframe Animation
  129. Tweening
  130. Text Animation with Flash
  131. Informit Articles and Sample Chapters
  132. Books
  133. Online Resources
  134. Summary
  135. Flash Audio
  136. Using Audio in Flash
  137. Importing
  138. Linking to MP3
  139. Publishing Audio
  140. Streaming MP3 from the Flash Communication Server
  141. Informit Articles and Sample Chapters
  142. Online Resources
  143. Summary
  144. Video in Flash
  145. Video
  146. Flash Video
  147. Spark Codec
  148. Exporting Video
  149. Informit Articles and Sample Chapters
  150. Blog and Discussion
  151. Summary
  152. Flash Components
  153. Attaching Components to Movies
  154. Creating a Component
  155. Informit Articles and Sample Chapters
  156. Tools and Downloads
  157. Summary
  158. Exporting and Optimization
  159. Connecting Flash to the Internet
  160. Loading SWF Movies
  161. Sharing Fonts Between Movies
  162. Reusing Your ActionScripts
  163. Using Third-Party Tools
  164. Informit Articles and Sample Chapters
  165. Online Resources
  166. Tools and Downloads
  167. Summary
  168. Introduction to Design in Flash
  169. Introduction to Design
  170. Fundamental Design Concepts
  171. Breaking Up the Screen
  172. Branding
  173. Adding Forms to Movies
  174. Developing with ActionScript
  175. Introduction to Programming within Flash MX 2004
  176. Using ActionScript to Extend the Functionality of Flash
  177. ActionScript Fundamentals
  178. Using the Actions Panel
  179. Using the Reference Panel
  180. Rapidly Adding ActionScript with the Behaviors Panel
  181. Event Handling within ActionScript
  182. Timeline Events
  183. Triggering Events through User Interaction
  184. Flash MX 2004 Pro
  185. Summary
  186. Creating Interactive Movies
  187. Giving Users a Choice
  188. What it All Comes Down to
  189. Summary
  190. Testing your Flash Movies
  191. Naming Conventions
  192. Syntax Checker
  193. Testing your movies
  194. Summary
  195. Debugging
  196. Using the "Debugger"
  197. Reviewing ActionScript Error Codes
  198. Summary
  199. Using ActionScript to Control Your Movies
  200. Setting Up Your Movies for Interaction
  201. Making Movie Clips Behave Like Buttons
  202. Controlling Multiple Movie Clips
  203. Applying Different Types of Events to a Movie Clip
  204. Summary
  205. Using ActionScript to Control Text
  206. How ActionScript Can Control Text
  207. Using Cascading Style Sheets within Flash MX 2004 Dynamic Text Boxes
  208. Applying CSS formatting with ActionScript
  209. Where Do You Go Now?
  210. The Differences Between ActionScript 1 and ActionScript 2
  211. Working with Classes
  212. Which Version of the Flash Player should you use?
  213. What’s Next?
  214. Using Pre-Built Classes In Flash MX 2004
  215. Using a Class in ActionScript
  216. The List of Core Classes
  217. Flash Player-Specific Classes
  218. Summary
  219. Creating Your Own Classes
  220. Creating a Custom Class
  221. Working with External Data in Flash
  222. Why Use XML in Flash?
  223. Integrating Flash and XML
  224. Visual Elements
  225. Adding the ActionScript
  226. Future Shock
  227. Using Components
  228. Begin Using Components
  229. Building an Application with Components
  230. Gluing Components Together with ActionScript
  231. Summary
  232. Informit Articles and Sample Chapters
  233. Books and e-Books
  234. Online Resources
  235. Rich Internet Applications
  236. Introduction to Rich Internet Applications
  237. Why Use Flash for Building Application Solutions?
  238. Building Applications with Flash
  239. Getting Started
  240. Using Flash Variables
  241. Working with Parameters in the Object and Embed HTML Tags
  242. Linking data with Flashvars
  243. Getting Data Into Flash: Loading External SWF and JPG Files
  244. Why You Should Separate Your Files
  245. Loading Movies into Levels and Target Movie Clips
  246. Summary
  247. Loading SWF and JPG Images
  248. Working With XML: What is XML, and How Does it Relate to Flash?
  249. A Brief History of XML
  250. Why Structuring Your Data is Always a Good Thing
  251. How XML Came to Flash
  252. Summary
  253. Working with XML: Good XML vs. Bad XML
  254. Good Places to Start
  255. Writing Good XML
  256. XML Tools
  257. The Next Step - Using XML in your Flash Applications
  258. Working with XML: Loading XML into Flash
  259. Integrating Flash and XML
  260. Visual Elements
  261. ActionScript
  262. Future Shock
  263. Working with XML — Dynamically Building XML with .NET, ColdFusion, Java, and PHP
  264. ColdFusion
  265. .NET
  266. Java
  267. PHP
  268. Summary
  269. Working with XML — Web Services
  270. SOAP Support in Flash MX 2004
  271. Using Components to Bind Web Services into your Applications
  272. Summary
  273. Working with Data — Working with XML
  274. XML In Flash
  275. Writing XML In Flash
  276. Building Trees of Data with XML
  277. Working with Data: Pushing Data back to the Server with Load Vars
  278. Setting up the Database
  279. Writing the VB.NET Code
  280. Creating the Flash Movie
  281. Working with Data: Leveraging Persistent Connections
  282. Using XMLSocket Connections
  283. XMLSocket Server
  284. XMLSocket Security
  285. XMLSocket Class in Flash
  286. Creating a Pong Game with an XMLSocket Server
  287. Summary
  288. Flash Remoting
  289. What is Flash Remoting?
  290. Using Flash Remoting
  291. The Future of Flash Remoting
  292. Flash Remoting Links
  293. Working with Data: Macromedia Flex Presentation Server
  294. What Problem Does Flex Presentation Server Address?
  295. How does Flex work?
  296. Coding and Building Flex Applications
  297. Building Rich Internet Applications: Connecting Flash to a Database
  298. Using FlashVars
  299. Using LoadVars
  300. Loading XML
  301. Consuming a Web Service
  302. Live data connections with XMLSocket Connections
  303. Building Rich Internet Applications: Planning, Planning, Planning
  304. A Simple Plan
  305. Tools You Can Use
  306. Applying a Discipline
  307. Building Rich Internet Applications: Design Counts
  308. Do Not Be Afraid to Ask For Help
  309. What if You Do Not Have a Ben To Call
  310. Building Rich Internet Applications: Beyond the Movie Clip
  311. UI Components
  312. Data Components
  313. Media Components
  314. Manager Components
  315. Screen Components
  316. Building Rich Internet Applications: Using Macromedia Central
  317. What Central is All About
  318. Who is Using Central?
  319. Developing for Macromedia Central
  320. Next Steps You Need to Take
  321. Building Rich Internet Applications: Using Macromedia Flex
  322. Authoring with Flex
  323. Publishing with Flex
  324. Presenting the Solution: Delivering Flash Applications to the Web
  325. Flash's own Publishing Tools
  326. Using Dreamweaver
  327. Writing your Own HTML
  328. Presenting the Solution: Delivering Flash Over Non-PC Devices
  329. Using Macromedia's Flash Lite
  330. Programming for Flash Lite
  331. FlashCast
  332. Informit Articles and Sample Chapters
  333. Books and e-Books
  334. Flash for Designers: Rich Media Production
  335. Graphic Control in Flash
  336. Drawing in Flash
  337. Importing Vector Art
  338. Importing Raster
  339. Scripting Images
  340. Introduction to the Rich Media Production
  341. Using Video, Audio and Images in your Flash Movies
  342. Using SWF Flash Movies
  343. Using JPEG Images
  344. MP3 Sound Files
  345. Flash Video
  346. Using Components to Build Rich Media Solutions
  347. Using the Loader Component
  348. Using the Media Components
  349. Controlling Components with ActionScript
  350. Controlling the Loader Component
  351. Media Components
  352. Using Audio in Flash
  353. Linking to MP3
  354. ActionScript-Controlled Audio
  355. Volume Control
  356. Publishing Audio
  357. Summary
  358. Video in Flash
  359. Working with Video
  360. Controlling Video with Components
  361. Exporting Video
  362. Summary
  363. Choosing Which Version of Flash Communication Server to Use
  364. Server Requirements
  365. Installation
  366. Running Communication Server on Different OS Platforms
  367. Pitfalls to Watch for
  368. Summary
  369. Streaming Video
  370. Live Video
  371. Broadcast Video on Demand
  372. Flash Video Components
  373. The Communication Server MX Server Code for the VideoPlayBack Component
  374. Record Video with VideoRecord Communication Component
  375. Create A Video Conference
  376. Examining the VideoConferencing Component
  377. The Communication Server MX Server Code for the VideoConferencing Component
  378. Summary
  379. Using the Microphone and Camera Core Classes
  380. Microphone
  381. Camera
  382. Constructing Large Applications That Leverage Video and Audio
  383. Configuring the Server
  384. Creating the Movie
  385. Broadcasting
  386. Summary
  387. Informit Articles and Sample Chapters
  388. Books and e-Books
  389. Matthew's Predictions for 2006
  390. Matthew's Favorite Flash Books
  391. Matthew's Favorite Flash Web Resources
  392. Macromedia as Part of Adobe
  393. First Look: Flash Player 8
  394. First, the Facts
  395. What Macromedia Brings to the Table
  396. What Adobe Brings to the Table
  397. What the Two Companies Can Do for Each Other
  398. A Brief History of Flash

If you’re looking for more up-to-date information on this topic, please visit our Flash article, podcast, and store pages.

Flash 8 comes with a whole set of transitions you can use for your Flash applications. But what if you are designing solutions for clients that do not want to support Flash 8, but rather prefer Flash 7 or even Flash 6? You still need to use transitions and visual effects. This guide will focus on how to create visual effects for Flash 6 to allow you freedom in your animation.

Your presentation requires you to move from one screen to another. How do you do it elegantly? The trick lies in applying a transition. In this guide article you will learn how to create transitions with ActionScript and apply them programmatically to any point within a movie. By the end of the article you will be able to apply 18 different types of transitions.

Setting the Stage

The Transition movie requires a lot of script. That's the bad news. The good news is that most of the script is repeated (you'll see why later) which makes the scripts you create very flexible.

Figure 1

Figure 1 The transition effects are all controlled through ActionScript. The effect is triggered when a user presses a button.

The entire movie is controlled through the use of ActionScript. Each button on the right is a script that in turn activates the transitional effect upon an image on the left of the screen.

The transition script itself is embedded as an initialization script within the main movie. You will also be able to dynamically change the transitioning image to another image completing the transition from one image to another.

To begin working on the Transition project you must create a movie. Name it transistions.fla.

The movie has four layers. Each layer is only one frame long. All of the transitions will be programmatically created, so there is no need for lengthy animations.

The scripts layer is the top-most layer. Frame 1 of this layer will contain the script that will be the engine that runs the entire movie. The buttons layer separates all of the buttons from the graphics on the stage. This makes it much easier to control the scripts for each button later in the movie. The text and background layers are the two final layers.

To the middle of the left-hand side of the movie there is a white dot placeholder for a movie. This placeholder identifies a movie with a blank first frame. This movie is an instance of the movie place_holder.

Open the Library (CTRL+L, PC, or Command-L, Mac) and expand the Movies folder. There are six movies in this folder: img Holder, img selector, place_holder, slice, slice_holder and preset sector. These movies will be the triggers for our transitions.

Figure 2

Figure 2 The Movies Folder in Library contains the movies that will have scripts applied.

Initializing the Movies

ActionScript can trigger events in a movie only when it can navigate to that movie by name, so the first thing you need to do is name the movies. The first movie to be named is the white slice_holder movie. Select the movie, choose Windows > Properties, then name the movie "holder." This will be used to identify the movie with ActionScript later on.

Figure 3

Figure 3 The Properties panel allows you immediate access to the common features of a movie clip. Here the slice_holder movie has the name "holder" added to it.

From within the Library, right-click the slice_holder movie, then choose the Properties option. All of the properties for this movie are now available. In the Identifier text field, name the movie holder. In the Linkage options area, select the Export for ActionScript and Export in First Frame checkboxes. The properties can now be interacted effectively with ActionScript. Every instance of the slice_holder movie will now be identified with the same name.

Figure 4

Figure 4 The Properties panel allows you to change the identifier and other features of the slice_holder movie directly within the Library.

Locate the slice movie in the Library, right-click on it, and open its properties. Identify the movie as pic and select the Export for ActionScript and Export in First Frame checkboxes.

From the Library, double-click the img holder movie to open it into edit view. This movie controls which image is having the transition effect applied to it. There are three key frames to this movie. Each key frame has an image. The first has the image of the green leaves, the second has the water and the third has the fire image.

Select frame 1 from the Timeline. From the Properties panel, label this frame as img1. Select frame 2 and label the name of the frame as img2. Finally, label frame 3 img3.

To complete the functionality of this img holder movie, add the following ActionScript to frame 1:

gotoAndStop(_parent.type);

The function of this script allows the parent movie to correctly navigate to a specific frame. Once it reaches the frame it will stop playing the movie.

Figure 5

Figure 5 The images in img holder movie will be called with ActionScript later in the movie. To get the correct image, each frame with a new image must be identified together with a short script at the beginning of the movie.

When the main movie is complete, a user sees effects being applied to an image on the stage. The effect is an illusion. The image on the screen is replaced with a movie that actually does the transition effect on the screen.

From the Library, open the movie slice. The slice movie is comprised of two elements: a rectangle mask and the movie img holder. A mask will assist with the illusion. Draw a rectangle on the stage 100 pixels high and 5 pixels wide. An instance of img holder movie is dragged onto the stage. Name it img. Convert the rectangle to a mask and apply it to the img holder.

Extend the timeline to 50 frames. Make a new Key Frame at frame 50. Add a motion tween between frame 1 and 50. Select frame 50 and move the img holder movie 100 pixels to the left side of the rectangle.

Before we complete working with this movie, a small amount of script must be added. Select frame 1 and add the following script:

if (!once) {
 once=true;
 frame=_name.split("_");
 frame=frame[1];
 gotoAndStop(frame);
}

Essentially, this script allows Flash to navigate to the correct label within the img holder movie and attach it to the mask. The key code here is the _name.split method. This method breaks a string into specified parts. In this case, the part is the name that is going to be passed to it from the main movie. This prevents any confusion within the program over which image should be presented.

Scripting the Image Selection Buttons

From the Library, open the img selector movie. Add the following script:

on (release) {
 _level0.setUp(frame);
}

Here a variable called frame is being created. It is calling an action in the same level as the movie and will be triggered when a user releases their mouse.

On the main stage, drag three instances of the img selector movie over the text of Leaves, Water, and Fire along the top of the movie. These buttons will control which image will be displayed on the screen.

Select the movie over the word Leaves and add the following script:

onClipEvent (load) {
 frame="img1";
}

By leveraging the code already embedded in the button, all we need to do is call the img selector variable frame and tell it which frame to change the image to. Here the frame will be img1.

Select the movie over the word Water and add the same script. This time change the frame="img1"; to frame="img2";. Do the same for Fire and change the reference to img3.

Figure 6

Figure 6 The choice of image is now controlled through ActionScript.

The final step is to initialize the slice holder movie on the main stage. Initializing the movie will allow Flash to associate the transition effect with the movie.

Add the following script to the slide holder movie on the stage:

onClipEvent (enterFrame) {
 _level0.render();
}
onClipEvent (keyDown) {
 if (Key.getCode() eq "45") {
  _level0.readPre();
 }
}

Line 2 renders the correct image into the movie. The script _level0.readPre will apply the correct transitional effect. The image is now prepared to have transitions applied to it. Preview you work. Change the image on the screen by choosing either Leaves, Water, or Fire. At this time there are not transitions. All you are doing is changing the images on the stage.

Setting up the Transitions

Select Frame 1 of the scripts layer. Here you can control how the movie is presented and which image will be the first on the stage. The script is:

_quality = "BEST";
preset(_level0.pre0);
setUp("img1"); 

The first line, _quality, controls the playback quality of the movie. Here the quality is set to "BEST." The setting can also be changed to LOW, MEDIUM, or HIGH. If the audience viewing this movie is using a slow computer I recommend changing the quality to LOW. This will make the image and text appear grainy; however the animation is rendered much faster and more efficiently. You will have to weigh whether it is worth loosing image quality to have faster playback.

The second line tells Flash to the transition pre0 to the image on the stage. In this case, pre0 is not an transitional effect, it is a static movie.

Finally, the img1 identifies the default image to be displayed on the stage.

The next section of script identifies the order in which properties will be manipulated as the transitions:

function readPre () {
 var choice=new Array()
 choice.push(_level0.waveLength);
 choice.push(_level0.sangle);
 choice.push(_level0.dist);
 choice.push(_level0.drift);
 choice.push(_level0.picDrift);
 choice.push(_level0.rotate);
 choice.push(_level0.optX);
 choice.push(_level0.optY);
 choice.push(_level0.optXs);
 choice.push(_level0.optYs);
 choice.push(_level0.optR);
}

The above array identifies the parameters that can be applied to different effects. The parameters are:

WaveLength

Oscillation effect on the image

Sangle

The angle at which the image will be moved in the transition

Distance

The distance the image will move

Drift

How far the image will skew

PicDrift

The skew distance of each image

Rotate

The amount the image will rotate

optX

How far off the X axis will the image move

optY

How far off the Y axis will the image move

optXs

How much the image will be scaled along the X axis

optYs

How much the image will be scaled along the Y axis

optR

How much the image will be scaled as it is rotated

These are the effects that will be applied to the final transition. The next step is to organize when each effect will be played back by Flash. The organization and placement of each effect is achieved with the following script:

function preset (choice) {
 _level0.waveLength = choice[0];
 _level0.mwaveLength.reset();
 _level0.sangle=choice[1];
 _level0.msangle.reset();
 _level0.dist=choice[2];
 _level0.mdist.reset();
 _level0.drift=choice[3];
 _level0.mdrift.reset();
 _level0.picDrift=choice[4];
 _level0.mpicDrift.reset();
 _level0.rotate=choice[5];
 _level0.mrotate.reset();
 _level0.optX=choice[6];
 _level0.moptX.reset();
 _level0.optY=choice[7];
 _level0.moptY.reset();
 _level0.optXs=choice[8];
 _level0.moptXs.reset();
 _level0.optYs=choice[9];
 _level0.moptYs.reset();
 _level0.optR=choice[10];
 _level0.moptR.reset();
}

This gives us 11 variables to modify. This will become more relevant when the effects are being created later in our script.

Up to this point it looks like we have a great list variables. The only catch is that all of the variables, such as optR and picDrift, are meaningless. What we need to do now is associate those variables with real methods and properties within Flash. This is achieved with the following script:

function setUp (type) {
 var stage=_level0.holder;
 for (i=1; i<51; i++) {
  stage.attachMovie("pic", "p_"+i, i);
  pic = stage["p_"+i];
  pic.type=type;
  pic._x = (i*2.9)-(25*2.9);
  nangle += waveLength;
  angle = sangle+nangle;
  scale = dist*Math.sin(angle);
  pic._yscale = 100-scale;
 }
}
function render () {
 var nangle;
 var stage=_level0.holder;
 stage._rotation=_level0.rotate;
 for (i=1; i<51; i++) {
  pic = stage["p_"+i];
  nangle += _level0.waveLength;
  _level0.sangle+=_level0.drift;
  var angle = _level0.sangle+nangle;
  var scale = _level0.dist*Math.sin(angle);
  pic._x = ((i*2.9)-(25*2.9))-(scale*optX);
  pic._y = scale*optY;
  pic._xscale = 100+(scale*optXS);
  pic._yscale = 100-(scale*optYS); 
  pic._rotation = (scale*optR);
if (int(_level0.picDrift) == 0) {
   myFrame=i;
  } else {
   pic.frame-=int(_level0.picDrift);
   myframe=pic.frame;
   if (myframe<1) {
    myframe=50;
   } else if (myframe > 50) {
    myframe=1;
   }
   pic.frame=myframe;
  }
  pic.gotoAndStop(myframe);
 } 
}

Here the most important event is the linking of the transitions being created to a movie on the main stage. The link is made absolute with the line stage.attachMovie("pic", "p_"+i, i). This reference links intrinsically to slice movie in the Library with the identifier pic. To make the code easier, pic is now turned into a variable in the following line and can allow us to mathematically identify what the names are in the array.

The math needed to calculate specific values opens with nangle += wavelength. Here the calculation for wavelength is being identified. The distance an image will move is calculated with scale = dist*Math.sin(angle). Here we have the value of scale equal to dist multiplied by the angle of Sin.

The true value of wavelength is identified as the value of wavelength + nangle. But what is the numerical value of wavelength? Remember the array created earlier? Well that comes in very handy with this section of script that controls the order of transitional effects themselves:

pre0=[0,0,0,0,0,0,0,0,0,0,0];
pre1=[-0.15,0,12.5,0.005,0,0,0,1,0,0,0];
pre2=[-0.05,0,90,0.001,-2,0,0.001,0,0,0,1]
pre3=[-2,0,100,0.04,0,90,0.001,0,0,1,0.01]
pre4=[-0.1,0,100,0.0006,0,-91,-0.8,-1,0.3,0.3,-0.01]
pre5=[-0.07,0,100,-0.002,0,0,0.2,1,0,1,1]
pre6=[-0.03,0,100,0.002,0,0,0,0.04,0,1,0]
pre7=[-1,0,13,0.005,0.06,-90,0,1,0,0,0]
pre8=[-1.3,0,100,0.004,0,0,1,1,1,1,1]
pre9=[-0.2,-6,100,0,-2,0,0.4,0.2,0,0,-0.2]
pre10=[-0.1,0,100,0.004,-2,0,-1,0.7,0,-0.7,1]
pre11=[-0.04,0,41,-0.005,0,0,-1,0.3,-0.2,-1,1]
pre12=[-0.05,0,100,0.002,0,0,0,0,0,0,1]
pre13=[-2.4,0,18,0.01,0,0,0,1,0,1,0]
pre14=[-3.2,0,100,0.00345,0,0,-0.85,1,0,-0.4,0]
pre15=[-0.6,0,5.6,0.03,0,0,0,0.06,0,1,0]
pre16=[-1.1,0,12.5,-0.005,0,-180,0,1,0,-1,0]
pre17=[-0.5,0,100,0.003,0,0,-0.1185,1,-1,-1,0]
pre18=[-0.3,0,100,0,1,0,-0.08,0.2795,0,0.17,0.7]

Each line will be associated with a specific button. If we take pre9 we can break down the effect that will be applied as:

Wavelength

-0.2

Sangle

-6

Dist

100

Drift

0.004

picDrift

-2

rotate

0

optX

0.4

optY

0.2

optXs

0

optYs

0

optR

-0.2

The final effect will be to apply a snaking, undulating effect to the slice movie on the stage. Each of the 19 effects is linked directly to the readPre array, which in turn has each item (such as wavelength, dish and optX) mathematically calculated in the render function. The result is a highly customizable set of transitional effects.

Complete the script on frame 1 with a simple:

stop();

Adding the Interaction

The final step is to allow users to choose which effect they would like applied to the final movie. The Transition buttons on the left hand of the stage do this. Each title, including the Reset button, has an invisible button on it. The invisible button is an old trick, but a good one, of hiding code on the stage.

From the Library, open the movie "preset selector." Select the button and add the following script:

on (release) {
 _level0.preSet(_level0["pre"+num]);
}

Select the button over the word Reset. In the Actions Panel, add the following to the button:

onClipEvent (load) {
 num=0;
}

The script is telling Flash to dynamically create a value of preset as pre + the variable num. For the reset button we see that the value is 0 (num=0). Hence, Flash must look for pre0. That script added to frame 1 has pre0=[0,0,0,0,0,0,0,0,0,0,0]; which resets all of the values of the effects for the image to zero. Basically, nothing will happen.

Go back to the main movie and select the button over Marching. Add the following script:

onClipEvent (load) {
 num=4;
}

Preview the movie. Select the Marching button. The image should now animate. If you do not like the animation, click the Reset button.

Every button can be associated to a preset value. To do this, add the same script applied to the Marching button with the exception of changing the value of num.

Here are the transitions with the correct num.

Marching

num=4

Energy

num=10

Flag

num=1

Wind

num=5

Flame

num=16

Slinky

num=11

Over Easy

num=6

In & Out

num=14

Rain

num=17

Waves

num=12

Ink Blot

num=3

Tennis

num=8

Drum Sticks

num=18

Snake

num=9

Karma

num=2

Water

num=7

Breeze

num=15

Chaos

num=13

How it Works

The transitions are all mathematically calculated at the opening of the movie with the ActionScript. These scripts are triggered by the buttons on the stage to affect the slice movie instance. The result is a transitional effect.

How To Improve

For this project you are using static graphics. Each of the movies in each one of the frames in the img holder movie could be a short animation themselves. You can have more than three. All you need to do is add additional frames to img holder and label each new frame.

You have probably noticed that the transitioned image is a specific size. If you want to replace the image with a larger image you will immediately notice that it is being cut short in size. This size of the movie on the screen is controlled by the rectangle mask in the slice movie. Increasing the size of the rectangle will allow for larger images to be transitioned effectively in the final movie.

Finally, the transitions can be easily pulled from this movie and applied to other movies to move users from one scene to the next.

Peachpit Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from Peachpit and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about Peachpit products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites; develop new products and services; conduct educational research; and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email ask@peachpit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by Adobe Press. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.peachpit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020