public virtual void advanceTime(float time) { int numObjects = (int)(mObjects.getLength()); int currentIndex = 0; int i = 0; mElapsedTime = mElapsedTime + time; if (numObjects == 0) { return; } for (i = 0; i < numObjects; ++i) { AsIAnimatable _object = mObjects[i]; if (_object != null) { if (currentIndex != i) { mObjects[currentIndex] = _object; mObjects[i] = null; } _object.advanceTime(time); ++currentIndex; } } if (currentIndex != i) { numObjects = (int)(mObjects.getLength()); while (i < numObjects) { mObjects[currentIndex++] = mObjects[i++]; } mObjects.setLength(currentIndex); } }