 										  parameterFunction:Function,
 										  events:Object,
                                           listeners:Array,
-                                          functionGetter:Function = null)
+                                          functionGetter:Function = null,
+                                          isStyle:Boolean = false)
     {
 		super(listeners);
 

    
	/**
 	 *  @private
     *  The document is what we need to use toe execute the parameter function.
     */
    private var document:Object;
    

    private function setupParentObj(newParent:Object):void
    {
		var eventDispatcher:IEventDispatcher;
        var eventName:String;

        // Remove listeners from the old "watched" object.
        if (parentObj != null &&
            parentObj is IEventDispatcher)
        {
            eventDispatcher = parentObj as IEventDispatcher;

            // events can be null when watching a function marked with
            // [Bindable(style="true")].
            if (events != null)
            {
                for (eventName in events)
                {
                    if (eventName != "__NoChangeEvent__")
                    {
                        eventDispatcher.removeEventListener(eventName, eventHandler);
                    }
                }
            }

            if (isStyle)
            {
                // For example, if the data binding expression is
                // {getStyle("color")}, the eventName will be
                // "colorChanged".
                eventName = parameterFunction.apply(document) + "Changed";
                eventDispatcher.removeEventListener(eventName, eventHandler);
                eventDispatcher.removeEventListener("allStylesChanged", eventHandler);
            }
        }
        
		parentObj = newParent;
        
        // Add listeners the new "watched" object.
        if (parentObj != null &&
            parentObj is IEventDispatcher)
        {
            eventDispatcher = parentObj as IEventDispatcher;

            // events can be null when watching a function marked with
            // [Bindable(style="true")].
            if (events != null)
            {
                for (eventName in events)
                {
                    if (eventName != "__NoChangeEvent__")
                    {
                        eventDispatcher.addEventListener(eventName, eventHandler,
                                                         false,
                                                         EventPriority.BINDING,
                                                         true);
                    }
                }
            }

            if (isStyle)
            {
                // For example, if the data binding expression is
                // {getStyle("color")}, the eventName will be
                // "colorChanged".
                eventName = parameterFunction.apply(document) + "Changed";
                eventDispatcher.addEventListener(eventName, eventHandler, false,
                                                 EventPriority.BINDING, true);                
                eventDispatcher.addEventListener("allStylesChanged", eventHandler, false,
                                                 EventPriority.BINDING, true);                
            }
        }
    }
