This is just a small note for all of those who is still developing using AS2.

The complete DON’T for AS2 classes is:

Never ever do create objects of your members arrays in declaration. Create them in the constructor instead.

You see, ActionScript 2 syntax allows the following:

class myAs2Class

{

  private var myMemberArray:Array = new Array();

  function myAs2Class()

  {}

}

CAUTION!
In that case, myMemberArray will be, by some reason, created as a static member. No matter how many instances of myAs2Class you will create, they ALL will operate with a single ‘static-like’ array in spite of the fact you didn’t declare it to be static. I didn’t check if Adobe or Macromedia has an explanation of this, but that’s what I want to share basing on my own experience and hours of debug.

Do the following instead:

class myAs2Class

{

  private var myMemberArray:Array;

  function myAs2Class()

  {

     myMemberArray = new Array();

  }

}

This will guarantee that a new array is created each time a new instance of your ActionScript2 class is created.