O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required