Stage Three

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:

  1. Open stage2.fla and save it as stage3.fla.

  2. 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 ...

Get Actionscript Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.