flex_控制弹出式窗口位置;

效果:通过单击窗口里边按钮可以使窗口移到相应位置;

=>WindowTitleCustom.mxml自定义组件

<?xml version="1.0" encoding="utf-8"?>

<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               width="300" height="120" close="onCloseWind()">
    
    <fx:Script>
        <![CDATA[
            import mx.managers.PopUpManager;
            
            /**
             * 关闭窗口;
             */
            protected function onCloseWind():void{
                PopUpManager.removePopUp(this);
            }
            
            /**
             * 移动窗口;
             */
            protected function moveWindTo(location:String):void{
                // 属性声明;
                var newX:Number = 0;
                var newY:Number = 0;
                var padding:Number = 10;
                
                // 居中显示:
                if(location == "center"){
                    PopUpManager.centerPopUp(this);
                    return;
                }
                
                if(location.indexOf("bottom") > -1) {
                    newY = (parent.height - this.height) - padding;
                }
                
                if(location.indexOf("top") > -1) {
                    newY = padding;
                }
                
                if(location.indexOf("left") > -1) {
                    newX = padding;
                }
                
                if(location.indexOf("right") > -1) {
                    newX = (parent.width - this.width) - padding;
                }
                
                move(newX, newY);
            }
        ]]>
    </fx:Script>
    
    <fx:Declarations>
        <!-- 非可视元素 -->
    </fx:Declarations>

    <!--view-->
    <s:VGroup horizontalCenter="0" verticalCenter="0" width="100%" height="100%">
        <s:HGroup width="100%">
            <s:Button id="tlBtn" label="左上角" width="100%" click="moveWindTo('toplet')"/>
            <s:Button id="trBtn" label="右上角" width="100%" click="moveWindTo('topright')"/>
        </s:HGroup>
        
        <s:VGroup width="100%" horizontalAlign="center">
            <s:Button id="alignBtn" label="中间" click="moveWindTo('center')"/>
        </s:VGroup>
        
        <s:HGroup width="100%">
            <s:Button id="blBtn" label="左下角" width="100%" click="moveWindTo('bottomleft')"/>
            <s:Button id="brBtn" label="右下角" width="100%" click="moveWindTo('bottomright')"/>
        </s:HGroup>
    </s:VGroup>
    
</s:TitleWindow>


=>主应用程序

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="1024" minHeight="768" pageTitle="TheStudioOfCenyebao"
               applicationComplete="initFn()">
    
    <fx:Script>
        <![CDATA[
            import com.learn.Window.WindowTitleCustom;
            
            import mx.managers.PopUpManager;
            
            protected var customWin:WindowTitleCustom;
            public function initFn():void{
                trace("=>Welcome to The Studio Of Cenyebao.");
                
                // 实例化并打开窗口:
                customWin = new WindowTitleCustom();
                PopUpManager.addPopUp(customWin, this, true);
                PopUpManager.centerPopUp(customWin);
                
                // 监听键盘:关闭窗口;
                stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpFn, false, 0, true);
            }
            
            /**
             * 使用Esc快捷键关闭窗口;
             */
            protected function onKeyUpFn(event:KeyboardEvent):void{
                if(event.keyCode == Keyboard.ESCAPE) {
                    PopUpManager.removePopUp(customWin);
                    trace("=>窗口已经关闭!");
                }
            }
        ]]>
    </fx:Script>
    
    <fx:Declarations>
        <!-- 非可视元素 -->
    </fx:Declarations>
    
    <!--view-->
</s:Application>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些函数都是用于设置 LVGL 中的 Flexbox 布局相关的属性。 - `void lv_obj_set_flex_grow(lv_obj_t * obj, uint8_t grow);` 用于设置一个对象在 Flexbox 布局中的 grow 属性值,即当有多余的空间时,该对象能够按照比例分配多余的空间。grow 属性值越大,该对象获得的多余空间就越多。 - `void lv_style_set_flex_flow(lv_style_t * style, lv_flex_flow_t value);` 用于设置样式中 Flexbox 布局的 flow 属性,即 Flexbox 中主轴和交叉轴的方向。 - `void lv_style_set_flex_main_place(lv_style_t * style, lv_flex_align_t value);` 用于设置样式中 Flexbox 布局中主轴对齐方式。 - `void lv_style_set_flex_cross_place(lv_style_t * style, lv_flex_align_t value);` 用于设置样式中 Flexbox 布局中交叉轴对齐方式。 - `void lv_style_set_flex_track_place(lv_style_t * style, lv_flex_align_t value);` 用于设置样式中 Flexbox 布局中 track 对齐方式。 - `void lv_style_set_flex_grow(lv_style_t * style, uint8_t value);` 用于设置样式中 Flexbox 布局中对象的 grow 属性值。 - `void lv_obj_set_style_flex_flow(lv_obj_t * obj, lv_flex_flow_t value, lv_style_selector_t selector);` 用于设置一个对象在指定的样式选择器中的 Flexbox 布局的 flow 属性。 - `void lv_obj_set_style_flex_main_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector);` 用于设置一个对象在指定的样式选择器中的 Flexbox 布局中主轴对齐方式。 - `void lv_obj_set_style_flex_cross_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector);` 用于设置一个对象在指定的样式选择器中的 Flexbox 布局中交叉轴对齐方式。 - `void lv_obj_set_style_flex_track_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector);` 用于设置一个对象在指定的样式选择器中的 Flexbox 布局中 track 对齐方式。 - `void lv_obj_set_style_flex_grow(lv_obj_t * obj, uint8_t value, lv_style_selector_t selector);` 用于设置一个对象在指定的样式选择器中的 Flexbox 布局的 grow 属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值