Hello,

Is there a stack trace along with the error?  If so, please post it.

Try making a very simple test case with your custom Window and Skin and open a 
bug report with that test case.  You can swap in different graphics if your 
skins are proprietary.

-Alex

From: Isabelle LOYER <i.lo...@intersystemes.fr>
Reply-To: "users@royale.apache.org" <users@royale.apache.org>
Date: Tuesday, April 26, 2022 at 8:00 AM
To: "users@royale.apache.org" <users@royale.apache.org>
Subject: Custom windows with Apache Flex 4.16.1 and Air 33


Dear Flex users,

I need your help to update my Flex 4.6 air desktop application app.

Indeed, now, I work with Apache Flex 4.16.1 and Air 33 and I have some problems 
with windows skin.

When I launch my application in debug mode an error appear who says : 
CloseButtonSkinM is undifined !



<s:SparkSkin xmlns:fx = 
"http://ns.adobe.com/mxml/2009";<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=05%7C01%7Caharui%40adobe.com%7Cf014f7b4dc2d4ebf17fc08da279582ea%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637865820486163333%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=WoKrvwoFE%2FYcHiXNzUfuTlYNAIWUiyiffl7yEzBxe%2Bc%3D&reserved=0>
             xmlns:s = "library://ns.adobe.com/flex/spark"
             xmlns:fb = 
"http://ns.adobe.com/flashbuilder/2009";<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fflashbuilder%2F2009&data=05%7C01%7Caharui%40adobe.com%7Cf014f7b4dc2d4ebf17fc08da279582ea%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637865820486163333%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=MqHmgXwn6Ry%2Bi02s0NeOCeXS42Ls3GuJBdwsndKQveY%3D&reserved=0>
 xmlns:Layout = "skin.Layout.*"
             alpha.disabledGroup = "0.5" creationComplete = 
"sparkskin1_creationCompleteHandler(event)">

    <fx:Metadata>
        [HostComponent("fr.mycompagny.ui.windowSkin.wCustomWindow")]
    </fx:Metadata>


    <fx:Script>
        <![CDATA[
            import fr.mycompagny.command.AddMenuImp;
            import fr.mycompagny.util.WindowManager;

            import mx.core.FlexGlobals;
            import mx.events.FlexEvent;
            import mx.events.StateChangeEvent;

            //skin Mac
            import assets.skin.components.MaximizeButtonSkinM;
            import assets.skin.components.MinimizeButtonSkinM;
            import assets.skin.components.CloseButtonSkinM;
            import spark.components.Button;


            private var btMaximize:Button;

            private var btMinimize:Button;
            private var closeButton:Button;





            protected function sparkskin1_creationCompleteHandler( 
event:FlexEvent ):void
            {
                this.addEventListener( StateChangeEvent.CURRENT_STATE_CHANGE , 
onEnterState );

                btMaximize=new Button();
                btMaximize.buttonMode=true;
                btMaximize.verticalCenter=0;

                btMinimize=new Button();
                btMinimize.buttonMode=true;
                btMinimize.verticalCenter=0;

                closeButton=new Button();
                closeButton.buttonMode=true;
                closeButton.verticalCenter=0;

                btMinimize.addEventListener( MouseEvent.CLICK , minimizeW );
                btMaximize.addEventListener( MouseEvent.CLICK , maximizeW );
                closeButton.addEventListener( MouseEvent.CLICK , closeWindow );

                this.addEventListener( StateChangeEvent.CURRENT_STATE_CHANGE , 
onEnterState );

                if ( NativeApplication.supportsDockIcon )
                {

                    buttonArea.addElement( closeButton );
                    buttonArea.addElement( btMinimize );
                    buttonArea.addElement( btMaximize );

                    closeButton.setStyle( "skinClass", CloseButtonSkinM);
                    btMaximize.setStyle( "skinClass" , MaximizeButtonSkinM );
                    btMinimize.setStyle( "skinClass" , MinimizeButtonSkinM );
                    buttonArea.left=12;
                    titleDisplay.left=this.width / 2;
                    icon.right=5;

                }
                else
                {

                    buttonArea.addElement( btMinimize );
                    buttonArea.addElement( btMaximize );
                    buttonArea.addElement( closeButton );
                    closeButton.setStyle( "skinClass" , CloseButtonSkin );
                    btMaximize.setStyle( "skinClass" , 
skin.components.MaximizeButtonSkin );
                    btMinimize.setStyle( "skinClass" , 
skin.components.MinimizeButtonSkin );
                    buttonArea.right=12;
                    titleDisplay.left=60;
                    icon.left=5;

                }

            }



        ]]>
    </fx:Script>


    <s:states>
        <s:State name = "disabledAndInactive" stateGroups = "disabledGroup, 
inactiveGroup"/>
        <s:State name = "maximizedGroup"/>
        <s:State name = "normal"/>
        <s:State name = "disabled" stateGroups = "disabledGroup"/>
        <s:State name = "normalAndInactive" stateGroups = "inactiveGroup"/>
        <s:State name = "supportsDockIcon"/>
        <s:State name = "supportsSystemTray"/>
    </s:states>

    <s:Rect id = "backgroundRect" left = "0" right = "0" top = "0" bottom = "0" 
alpha = "0">
        <s:fill>
            <s:SolidColor alpha = "0"/>
        </s:fill>
    </s:Rect>

    <s:Group bottom = "0" left = "0" right = "0" top = "0">
        <!--Fond de la fenetre-->
        <s:Rect bottom = "0" left = "0" right = "0" top = "0" radiusX = "8" 
radiusY = "8">
            <s:fill>
                <s:SolidColor color = "#656565" alpha = ".7"/>
            </s:fill>
            <s:stroke>
                <s:SolidColorStroke color = "#666666"/>
            </s:stroke>
        </s:Rect>

        <s:Group height = "38" id = "moveArea" left = "0" right = "0">

            <!--Barre bleu avec filet-->
            <s:Rect height = "25" left = "10" right = "10" top = "10">
                <s:fill>
                    <s:SolidColor color = "#055a90"/>
                </s:fill>
                <s:stroke>
                    <s:SolidColorStroke color = "#666666"/>
                </s:stroke>
            </s:Rect>


            <s:BitmapImage id = "icon" verticalCenter = "0"/>

            <s:Label id = "titleDisplay" styleName = "swindowTitle" top = "18" 
verticalAlign = "middle" horizontalCenter = "0"/>

            <!--Zone de bouton-->

            <s:HGroup id = "buttonArea" verticalCenter = "0">

                <!--<s:Button id="btMinimize" buttonMode="true"
                         verticalCenter="0"/>

                <s:Button id="btMaximize" buttonMode="true"
                          verticalCenter="0"/>

                <s:Button id="closeButton" buttonMode="true"
                          verticalCenter="0"/>-->

            </s:HGroup>

        </s:Group>

        <!--Fond de la zone principale-->

        <s:Rect id = "background" left = "10" top = "35" right = "10" bottom = 
"10">
            <s:fill>
                <s:LinearGradient rotation = "-90">
                    <s:GradientEntry color = "#edf0f7"/>
                    <s:GradientEntry color = "#fcfbfb"/>
                </s:LinearGradient>
            </s:fill>
            <s:stroke>
                <s:SolidColorStroke color = "#666666"/>
            </s:stroke>
        </s:Rect>

        <!--Zone dans laquelle les elements vont se positionner-->


        <s:Group id = "contentGroup" left = "15" right = "15" top = "43" bottom 
= "15" minWidth = "0" minHeight = "0" width = "100%" height = "100%">

        </s:Group>



    </s:Group>
    <s:Button height = "15" id = "btResize" width = "15" bottom = "0" right = 
"0" skinClass = "spark.skins.spark.windowChrome.GripperSkin" mouseDown = 
"btResize_mouseDownHandler(event)"
              buttonMode = "true"/>

</s:SparkSkin>
--
Isabelle LOYER

Reply via email to