<< Chapter < Page Chapter >> Page >

A loud clap of thunder

There should be a loud clap of thunder immediately following the sizzle sound as the scene reverts to something similar to that shown in Figure 1.

The moon

Throughout all of this, the moon should continue to move very slowly from left to right across the scene. When it reaches the right edge of the scene, it shouldwrap around and start over on the left side.

Discussion and sample code

The project file structure

The final project file structure, captured from the FlashDevelop project window, is shown in Figure 3.

Project file structure for lighteningstorm01.

Missing image.
Project file structure for LighteningStorm01.

As you can see in Figure 3, all of the sound and image files are stored in the folder named src . In addition, all of the sound files were manually copied into the folder named bin .

Will explain in fragments

I will explain the code for this program in fragments. Complete listings of the MXML code and theActionScript code are provided in Listing 16 and Listing 17 near the end of the lesson.

The MXML code

The MXML code is shown in Listing 16. As is often the case in this series of lessons, the MXML file is very simple because the program was codedalmost entirely in ActionScript. The MXML code simply instantiates an object of the Driver class. From that point forward, the behavior of the program is controlled by ActionScript code.

The ActionScript code

Beginning of the Driver class

The Driver class begins in Listing 1.

Listing

Beginning of the driver class.

/*Project LighteningStorm01 This project was developed using FlashDevelop, whichhas a couple of requirements that may not exist with Flex Builder 3 or Flash Builder 4.1. You must manually copy all mp3 files into the bin folder.2. You must insert an extra slash character in the URL when embedding an image file in the swf file.*********************************************************/ package CustomClasses{import flash.display.Bitmap; import flash.display.BitmapData;import flash.media.SoundChannel; import mx.containers.Canvas;import mx.controls.Image; import mx.controls.Button;import mx.events.FlexEvent; import flash.events.TimerEvent;import flash.events.MouseEvent; import flash.utils.Timer;import flash.utils.ByteArray; import flash.media.Sound;import flash.net.URLRequest; import flash.media.SoundChannel;import flash.events.Event; import flash.geom.Rectangle;//====================================================//public class Driver extends Canvas {//Extending Canvas makes it possible to position // images with absolute coordinates. The default// location is 0,0;private var bkgndColor:uint = 0x005555; private var redBkgnd:uint = 0;private var greenBkgnd:uint = 128; private var blueBkgnd:uint = 128;private var normalSky:Image = new Image();private var flippedSky:Image = new Image();private var tree:Image = new Image(); private var newTreeImage:Image = new Image();private var treeBitMap:Bitmap;private var alphaLim:Number = 0.5; private var normalAlpha:Number = alphaLim;private var flippedAlpha:Number; private var normalAlphaDecreasing:Boolean = true;private var canvasObj:Canvas; private var timer:Timer = new Timer(35);private var loopCntr:uint;private var lighteningCntr:uint = 0; private var lighteningCntrLim:uint = 25;private var lighteningStartX:uint; private var lighteningStartY:uint;private var lighteningEndX:uint; private var lighteningEndY:uint;private var sizzle:Sound;private var thunder:Sound; private var wind:Sound;private var rain:Sound;private var sizzlePlaying:Boolean = false; private var channel:SoundChannel;private var button:Button;private var radius:Number = 24;//radius of circleprivate var circleX:Number = 5 * radius; private var circleY:Number = 1.5 * radius;private var dx:Number = 0.05;

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with actionscript. OpenStax CNX. Jun 04, 2010 Download for free at http://cnx.org/content/col11202/1.19
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?

Ask