title: Can't "removeChild" after referencing the object earlier
body: <p>Basically, I have two routines: One is a CDK collision check, and the other is a generic verification of an array. They're both inside the same Timer Event. There are two arrays - the collisionList and the MasterArray, and the object is in both of them.</p>
  
  <p>First, the collision routine:</p>
  
  <pre><code>    var collisions:Array = collisionList.checkCollisions();
  
   for(var i:uint = 0; i &lt; collisions.length; i++)
  </code></pre>
  
  <p>{ var firstShape:Sprite = collisions[i].object1;</p>
  
  <p>if(firstShape.name=="Obj1") {<br>
      collisions[i].object1.x = -20;
      collisionList.removeItem(collisions[i].object1);
     }
          }</p>
  
  <p>Then I have:</p>
  
  <pre><code>     for each(var i in MasterArray) {
       Shape1:Sprite = MasterArray[i];
  </code></pre>
  
  <p>if (i.x &lt; 0) {
    removeChild(Shape1);
     MasterArray.splice(this,1);
    }</p>
  
  <pre><code>     }
  </code></pre>
  
  <p>But it doesn't work. It gives me a massive crash.
  If I don't change the object x in the collision routine, the moment it's moved out of the screen by any other function, it disappears and all is well.</p>
  
  <p>However, even if I just touch on it with the collision routine (for example, if I state I want its x at 20), the next time something happens and moves it to x &lt; 0, I get the same crash.</p>
  
  <p>If I don't do anything on the MasterArray check and do a removeChild on the collision check, it works fine too.</p>
  
  <p>This is the error I get in either case:</p>
  
  <pre><code>    ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
  </code></pre>
  
  <p>at flash.display::DisplayObjectContainer/removeChild()
   at game2_Scene1_fla::MainTimeline/TimeCheck()
   at flash.utils::Timer/_timerDispatch()
   at flash.utils::Timer/tick()</p>
  
  <p>Thanks!</p>