July 2003
Intermediate to advanced
896 pages
45h 43m
English
In the third stage you want to add more circle instances to the movie. In and of itself, this is quite easy now that you have created a component. However, adding more circles adds another level of complexity. The circles should bounce off each other as well as the sides of the rectangle. To accomplish this, you need to devise a way in which each circle knows about all the other circles. This is not as difficult as it may sound. Here are the steps to complete the third stage of the application:
Open stage2.fla and save it as stage3.fla.
Open the Circle symbol and modify the code as
follows (changes are in bold):
#initclip
function CircleClass( ) {}
CircleClass.prototype = new MovieClip( );
CircleClass.prototype.init = function (minX, minY, maxX, maxY, vel, col, radius) {
with (this) {
lineStyle(0, 0x000000, 0);
beginFill(0, 100);
drawCircle(radius);
endFill( );
}
this.minX = minX;
this.minY = minY;
this.maxX = maxX;
this.maxY = maxY;
this._x = Math.random( ) * this.maxX;
this._y = Math.random( ) * this.maxY;
if (vel == "random") {
this.vel = Math.random( ) * 6 + 3;
} else {
this.vel = vel;
}
this.dir = Math.random( ) * Math.PI * 2;
this.colObj = new Color(this);
if (col == "random") {
col = Math.random( ) * 255 * 255 * 255;
}
colObj.setRGB(col);
};
// The setCircleArray( ) method allows you to define an array of references to
// all the circle instances.
CircleClass.prototype.setCircleArray = function (cirAr) {
this.circleArray = cirAr;
}; CircleClass.prototype.onEnterFrame ...Read now
Unlock full access