It seems that Flex 2 does in fact autosize, but it has a minimum size
of 12 x 12 to do so. If you assign an image whose dimensions are
smaller than that as a skin, the button will be scaled up to 12 x 12
if you don't provide an explicit size. This holds true in Flex 2, HF 1
 through 3. Flex 3 will autosize anything, all the way down to a 1 x 1
skin.

I was using the simple test app below and adjusting the size of
closeButton.png to test. Luckily, my skins are currently 10 x 10 and I
think resaving them as 12 x 12 should be OK. Interesting nonetheless.

Ben



<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute"
        creationComplete="init()">
        <mx:Style>
                Button
                {
                        upSkin: Embed(source="closeButton.png");
                        overSkin: Embed(source="closeButton.png");
                        downSkin: Embed(source="closeButton.png");
                        disabledSkin: Embed(source="closeButton.png");
                }
        </mx:Style>
        <mx:Script>
                <![CDATA[
                        private function init():void
                        {
                                trace(btn.getExplicitOrMeasuredWidth(),
btn.getExplicitOrMeasuredHeight());
                        }
                ]]>
        </mx:Script>
        <mx:Button id="btn" />
</mx:Application>

Reply via email to