     
     private var oldY:Number;
     
-    // Size change detection vars
-    /**
-     * @private
-     */
-    protected var trackSizeChanges:Boolean = false;
-    
     private var oldWidth:Number;
     
     private var oldHeight:Number;

    //  Public variables
    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  x

        
        if (x != oldX || y != oldY)
            dispatchMoveEvent();
        
        removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
    }
    
    /**
     *  This enter frame handler watches the flash object's size to see if
     *  it has changed.  If it's chagned, we will notify our flex parent of 
     *  the change.  This size change may also cause the flash component 
     *  to rescale if it's been explicitly sized so it fits within the 
     *  correct bounds.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 4
     */
    protected function trackSizeChangesEnterFrameHandler(event:Event):void
    {
        // Size check.
        var currentBounds:Rectangle = bounds;
        
        // take secret scale into account as it's our real width/height
        currentBounds.width *= mx_internal::scaleXDueToSizing;
        currentBounds.height *= mx_internal::scaleYDueToSizing;
        
        if (sizeChanged(currentBounds.width, oldWidth) || sizeChanged(currentBounds.height, oldHeight))
        {
            _width = currentBounds.width;
            _height = currentBounds.height;
            validateMeasuredSizeFlag = true;
            notifySizeChanged(); 
            dispatchResizeEvent();
        }
        else if (sizeChanged(width, oldWidth) || sizeChanged(height, oldHeight))
        {
            dispatchResizeEvent();
        }
    }
    
    /**
     *  This enter frame handler watches our currentLabel for changes so that it 
     *  can be reflected in the currentState.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 4
     */
    protected function trackStateChangesEnterFrameHandler(event:Event):void
    {
        // Check for the current state.  This is really only checked for if 
        // trackStateChanged == true.  This is so that if we magically land 
        // on a "foo" labelled frame, we return "foo" as the currentState.
        if (currentLabel && currentLabel.indexOf(":") < 0 && currentLabel != _currentState)
            _currentState = currentLabel;
    }
    
    /**
     *  This enter frame handler progresses through transitions
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 4
     */
    protected function transitionEnterFrameHandler(event:Event):void
    {       
        // Play the next frame of the transition, if needed.
        var newFrame:Number = currentFrame + transitionDirection;

        if ((transitionDirection > 0 && newFrame >= transitionEndFrame) || 
            (transitionDirection < 0 && newFrame <= transitionEndFrame))
        {
            gotoAndStop(stateMap[transitionEndState].frame);
            transitionDirection = 0;
            removeEventListener(Event.ENTER_FRAME, transitionEnterFrameHandler);
        }
        else
        {
            gotoAndStop(newFrame);
        }
    }
    
