Hi Everyone,

I have a sub-component which uses a String binding on a Label. The bindings 
works fine if I do not use a skinClass on the host component. If I do use a 
SparkSkin, my bindings do not execute on the sub-component. Instead, I get the 
value which I initialized it to.

Am I doing something wrong, or is this expected behavior?

If this is expected behavior, then what is the purpose of a SparkSkin if I have 
to explicitly redeclare all my control code in the skin?

I could just be misunderstanding the intended usage, but from what I understood 
in the docs it seems like a very powerful new feature.

Would anyone be able to enlighten me on the topic a bit more?


Here is the trimmed code for my host/sub

Host Component
----
<s:SkinnableContainer skinClass="demand.skins.DSDoc" >
        <fx:Metadata>
                [SkinState("normal")]
        </fx:Metadata>
        <fx:Script>
                <![CDATA[       
                        [SkinPart(required="false")]
                        public var titleBar:IReportTitleBar
                        
                        override protected function createChildren():void
                        {
                                if (!_titleBar)
                                {
                                        _titleBar = new DCDocTitleBar();
                                        
this.addElementAt(IVisualElement(_titleBar), 0);
                                }
                                super.createChildren();
                        }
                ]]>
        </fx:Script>
</s:SkinnableContainer>
---

The title bar sub-component
----
<s:SkinnableContainer >
        <fx:Script>
                <![CDATA[
                        [Bindable]
                        public var label:String="Incorrect Label";
                ]]>
        </fx:Script>
        <s:Label text="{this.label}"/>
</s:SkinnableContainer>
----

The host component skin
----
<s:SparkSkin >
        <fx:Metadata>
                [HostComponent("demand.reports.DRDoc")] 
        </fx:Metadata>
        <s:states>
                <s:State name="normal"/>
        </s:states>
        <controls:DCDocTitleBar id="titleBar" />
</s:SparkSkin>
----


Thanks in advance!

~Aaron

Reply via email to