<< Chapter < Page | Chapter >> Page > |
Beyond that, no explanation of the code in Listing 6 beyond the embedded comments should be needed.
The method named processBackgroundColor
As you saw in Listing 5, the Timer event handler calls a method named processBackgroundColor each time the Timer object fires an event (about three times per second) . The purpose of the method is to cause the overall color of the image to change slowly over time.The method is shown in its entirety in Listing 7.
//This method processes the background color. The
// color changes among various shades of cyan when// there is no lightening bolt. The color changes
// among various shades of dark yellow when there is a// lightening bolt.
private function processBackgroundColor():void {if (!sizzlePlaying) {
//Vary background color when there is no// lightening flash.
if (Math.random()>0.5) {
if (greenBkgnd<250){
greenBkgnd += 5;}//end if
}else {if(greenBkgnd>5){
greenBkgnd -= 5;}//end if
}//end elseif (Math.random()>0.5) {
if (blueBkgnd<250){
blueBkgnd += 5;}//end if
}else {if(blueBkgnd>5){
blueBkgnd -= 5;}//end if
}//end else}else {//Vary background color during a lightening flash
if (Math.random()>0.5) {
if (greenBkgnd<245){
greenBkgnd += 10;}//end if
}else {if(greenBkgnd>10){
greenBkgnd -= 10;}//end if
}//end elseif (Math.random()>0.5) {
if (redBkgnd<245){
redBkgnd += 10;}//end if
}else {if(redBkgnd>10){
redBkgnd -= 10;}//end if
}//end else}//end else
bkgndColor = (redBkgnd<<16) + (greenBkgnd<<8)
+ blueBkgnd;setStyle("backgroundColor", bkgndColor);
setStyle("backgroundAlpha",0.5);}//end processBackgroundColor
Long and tedious
The code in Listing 7 is long and tedious but not particularly complicated.
Three sections of code
The code can be broken down into three sections for purposes of explanation. The first section begins at the beginning of the if statement and continues down to, but not including the else clause. Note that the conditional clause for the if statement tests to determine if the value of the variable named sizzlePlaying is false.
For a value of false, the code in the if statement makes very small random changes to the green and blue components of the backgroundcolor during those periods when there is no lightening bolt on the screen. The value of the red color component is zero during this period.
The second section
The second section begins with the else clause, and the code in this section is executed when the value of sizzlePlaying is true.
The code in this section makes very small random changes to the red and green components of the background color during those periods where there is alightening bolt on the screen. The value of the blue color component is zero during this period.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?