title: When adding to or removing from an ArrayCollection, does it always produce an ADD or REMOVE CollectionEvent?
body: <p>I was about to add an event listener to one of my ArrayCollections, like so:</p>
  
  <pre><code>m_acElements.addEventListener(CollectionEvent.COLLECTION_CHANGE,
          onCollectionChange);
  </code></pre>
  
  <p>While starting to write the onCollectionChange function, I referred to the API reference concerning <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/events/CollectionEvent.html#kind" rel="nofollow">CollectionEvent.kind</a>, which states:</p>
  
  <pre><code>"Indicates the kind of event that occurred. The property value can be one of the
  values in the CollectionEventKind class, or null, which indicates that the kind
  is unknown."
  </code></pre>
  
  <p>This is scary.  There's not a whole heck of a lot being said there about <em>when</em> the kind is unknown, and it's not immediately obvious while looking around in other places for an indication.</p>
  
  <p>I'm not doing anything exotic here.  Is there some sort of guarantee then that non-error raising calls to AddItem and AddItemAt will produce an ADD event, and that removeAll and removeItemAt will produce a REMOVE event?  Or is this just not completely reliable?</p>
  
  <p>I supposed I could override those methods in a subclass if necessary, but I'd rather just be told that I'm being paranoid.  Plus I just want to have a general idea of when to watch out for this with CollectionEvents.  Thanks!</p>