Side note, to add to the discussion, here is a couple of ways to also update 
properties in code for <s:Skin> and <s:SparkSkin> with  [1] and [2].


[1]
override protected function updateDisplayList(unscaledWidth:Number, 
unscaledHeight:Number):void
{
    doStuff();

    super.updateDisplayList(unscaledWidth, unscaledHeight);
}


[2]
//
override public function styleChanged(styleProp:String):void
{
    If (styleProper == "myStyleName")
    {
        doStuff();
    }
}


-Mark K

-----Original Message-----
From: bilbosax <waspenc...@comcast.net>
Sent: Sunday, December 29, 2019 10:27 PM
To: users@flex.apache.org
Subject: [Non-DoD Source] Re: Skins - Get Properties From Parent Component

Alex, to be honest, I have become accustomed to avoiding binding expressions
due to performance hits, especially with large array collections and
dataproviders.  I have become sooooo accustomed to doing this, that it
didn't even cross my mind.  But a binding expressions are brilliant in this
situation and streamlines the process considerably, getting rid of two
unneccessary methods and a timing mechanism that can't be 100% relied upon.
Thanks for this simple but very useful solution.  Here is what the skin code
looks like now:

<?xml version="1.0" encoding="utf-8"?>
<s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009";
                                   xmlns:s="library://ns.adobe.com/flex/spark"
                                   
xmlns:fb="http://ns.adobe.com/flashbuilder/2009";
                                   minWidth="20" minHeight="20"
                                   alpha.disabled="0.5" 
xmlns:fxgAssets="fxgAssets.*">

        <fx:Metadata>

        </fx:Metadata>


        <s:states>
                <s:State name="up" />
                <s:State name="over" />
                <s:State name="down" />
                <s:State name="disabled" />
        </s:states>

        <s:Rect id="buttonRect" width="100%" height="100%"
bottomLeftRadiusX="{height/2}" bottomLeftRadiusY="{height/2}"
bottomRightRadiusX="{height/2}" bottomRightRadiusY="{height/2}"
topLeftRadiusX="{height/2}" topLeftRadiusY="{height/2}"
topRightRadiusX="{height/2}" topRightRadiusY="{height/2}">
                <s:fill>
                        <s:SolidColor color.up="#2B8D00" color.down="#323233"/>
                </s:fill>
        </s:Rect>
        <s:Label id="labelDisplay" color="#FAFAFA" styleName="titleMedium"
fontWeight="bold" horizontalCenter="0" verticalCenter="0"/>
        <s:Rect width="100%" height="100%" alpha="0" includeIn="up, over, down,
disabled">
                <s:fill>
                        <s:SolidColor color="#FFFFFF"/>
                </s:fill>
        </s:Rect>

</s:SparkButtonSkin>



--
Sent from: http://apache-flex-users.2333346.n4.nabble.com/

Reply via email to