         return null;
     }
     
+    /**
+     *  Marks the renderer's state as invalid so that the new state is set
+     *  during a later screen update.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function invalidateRendererState():void
+    {
+        playTransitionsOnNextRendererState = (playTransitionsOnNextRendererState || playTransitions);
+        
+        if (rendererStateIsDirty)
+            return; // State is already invalidated
+        
+        rendererStateIsDirty = true;
+        invalidateProperties();
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Overridden Methods

        // Initially state is dirty
        rendererStateIsDirty = true;
        
        itemRendererInteractionStateDetector = new ItemRendererInteractionStateDetector(this);
        itemRendererInteractionStateDetector.addEventListener(Event.CHANGE, itemRendererInteractionStateDetector_changeHandler);
    }
    
    //--------------------------------------------------------------------------

     *  @private
     *  Helper class to help determine when we are in the hovered or down states
     */
    private var interactionStateDetector:InteractionStateDetector;
    
    /**
     *  @private
     *  Whether the renderer's state is invalid or not.
     */
    private var rendererStateIsDirty:Boolean = false;
    
    /**
     *  @private
     *  A flag associated with rendererStateIsDirty, determining if 
     *  this renderer should play any associated transitions 
     *  in the next validation pass.  This is different from the mx_internal
     *  playTransitions flag, which is set externally by List and DataGroup. 
     */
    private var playTransitionsOnNextRendererState:Boolean = false;
    
    /**
     *  @private
