I have a custom class, WizardLeftTab that inherits from WizardTabBase >> 
SkinnableContainer,. WizardTabBase has the following custom properties:

// ---------------------                        
                        private var _isSelected:Boolean;
                        
                        [Bindable]
                        public function get isSelected():Boolean
                        {
                                return _isSelected;
                        }
                        
                        public function set isSelected( val:Boolean ):void
                        {
                                _isSelected = val;
                                currentState = ( _isSelected ) ? 'selected' : 
'normal';
                                invalidateSkinState();
                        }       

...

override protected function getCurrentSkinState():String
                        {
                                if( !enabled )
                                {
                                        currentState = 'disabled';
                                }
                                else if( isSelected )
                                {
                                        currentState = 'selected';
                                }

                                return currentState;
                        }

In another class (NavigationModel) I have a function that calls set isSelected:

// ---------------------        

public function setSelectedTab( tab:WizardLeftTab ):void
                {
                        for each( var mtab:WizardLeftTab in tabsRegistry )
                        {
                                mtab.isSelected = false;
                        }
                        
                        tab.isSelected = true;
                }

(in this class, tabsRegistry is an ArrayCollection)

When I trace through the code, it does this:

>>in the for.. loop<<
it finds each mtab correctly, 
it calls the set isSelected
WITHOUT going into the body, it jumps immediately to the get isSelected and 
returns false, and so the skin state is never updated

>>in the tab.isSelected = true statement <<
then it behaves correctly, calling the setter and all the methods in the setter 
body

Even more strangely, if I remove the [Bindable] tag, it again finds each mtab 
correctly,  passes into the body of the setter and calls all its methods, and 
yet the getCurrentSkinState still returns 'selected' once it has been set

Im about at my wit's end. Any insight would be most appreciated.

Thanks



Reply via email to