     public function get frame () :int { return _frame; }
 
     /** @return the number of frames in the movie. */
-    public function get frames () :int { return _frames; }
+    public function get frames () :int { return _numFrames; }
 
     /** @return true if the movie is currently playing. */
     public function get isPlaying () :Boolean { return _playing; }

    /** @private */
    protected var _layers :Vector.<Layer>;
    /** @private */
    protected var _frames :int;
    /** @private */
    protected var _frameRate :Number;
    /** @private */

        if (src.flipbook) {
            _layers = new Vector.<Layer>(1, true);
            _layers[0] = new Layer(this, src.layers[0], library, /*flipbook=*/true);
            _numFrames = src.layers[0].frames;
        } else {
            _layers = new Vector.<Layer>(src.layers.length, true);
            for (var ii :int = 0; ii < _layers.length; ii++) {
                _layers[ii] = new Layer(this, src.layers[ii], library, /*flipbook=*/false);
                _numFrames = Math.max(src.layers[ii].frames, _numFrames);
            }
        }
        _duration = _numFrames / _frameRate;
        updateFrame(0, 0);

        // When we're removed from the stage, remove ourselves from any juggler animating us.
        addEventListener(Event.REMOVED_FROM_STAGE, function (..._) :void {
