MoviePlayer's init() override was missing a call to super.init().

Without super.init(), the Animation's _current attribute was never initialized.  This would throw a NullPointerException when the animation was triggered as a part of a larger animation group.