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>

阅读更多
个人分类: Flex
上一篇flex_ViewStack导航容器示例;
下一篇flex_弹出式窗口与数据的结合事例;
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭