<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    TWaver - 專注UI技術

    http://twaver.servasoft.com/
    posts - 171, comments - 191, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    打造自己的Flex AIR標題欄

    Posted on 2012-02-29 14:51 TWaver 閱讀(2341) 評論(0)  編輯  收藏
    有人問如何用代碼禁用Flex AIR程序標題欄的最大化, 最小化按鈕, 雖然app.xml文件里面可以控制是否禁用和啟用最大化, 最小化按鈕, 但是無法動態切換, 因為WindowedApplication.maximizable和WindowedApplication.minimizable是read only的. 下面就介紹一下如何定制自己的AIR程序標題欄, 先看下效果(是不是和原生的很像? 完全可以以假亂真了):

    1. 先隱藏原生的標題欄: 編輯xxx-app.xml, 找到systemChrome行, 取消注釋, 并設置值為none:

    <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
        <systemChrome>none</systemChrome>

    2. 構造標題欄: 先用漸變色填充背景, 然后分別添加關閉, 最小化, 最大化按鈕以及標題. 幸運的是Flex的WindowedApplication提供了exit, minimize, maximize和restore方法, 關閉, 最小化, 最大化以及還原窗口算是非常簡單了:

    <s:Group width="100%" height="20">
                    <s:Rect id="background" left="0" top="0" right="0" bottom="0">
                        <s:fill>
                            <s:LinearGradient rotation="90">
                                <s:entries>
                                    <s:GradientEntry color="0xCCCCCC" ratio="0" alpha="1"/>
                                    <s:GradientEntry color="0x999999" ratio=".66" alpha="1"/>
                                </s:entries>
                            </s:LinearGradient>
                        </s:fill>
                    </s:Rect>
                    <s:Image source="close.png" click="exit()" width="20" y="2"/>
                    <s:Image source="min.png" click="minimize()" width="20" x="20" y="2"/>
                    <s:Image source="max.png" click="handleMax()" width="20" x="40" y="2"/>
                    <s:Label id="_titlebar" text="TestAir" left="60" top="0" right="0" bottom="0" textAlign="center" verticalAlign="middle"/>
                </s:Group>
    			3. 給標題添加事件, 以達到拖拽標題時, 移動窗口. 這里走了不少彎路(開始用監聽鼠標移動事件, 計算鼠標的移動距離, 以修改nativeWindow的x和y坐標, 發現鼠標移動過程中, 窗口一直在抖動), 最后發現WindowedApplication的nativeWindow有startMove方法, 只要在mouse down事件里面調用此方法, 就可以達到移動窗口的目的:
    this.addEventListener(Event.ADDED_TO_STAGE, function(e:*):void {
        _titlebar.addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void {
            nativeWindow.startMove();
        });
    });
    本文完整代碼見附件:AirTitleBar


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品亚洲专区无码牛牛 | 亚洲AV日韩综合一区尤物| 精品国产日韩亚洲一区91| a毛片在线看片免费| 毛片在线免费视频| 久久精品国产精品亚洲| 亚洲三级视频在线| 一级免费黄色大片| 99精品国产免费久久久久久下载 | 亚洲AV日韩AV永久无码下载| 激情综合亚洲色婷婷五月APP| 中文字幕久无码免费久久| 99re热免费精品视频观看| 国产亚洲精品观看91在线| 亚洲精品乱码久久久久久V | 在线亚洲v日韩v| 亚洲免费人成视频观看| 国产91精品一区二区麻豆亚洲| 亚洲国产日韩女人aaaaaa毛片在线| 一级视频在线免费观看| 99久久免费精品国产72精品九九| 亚洲精品国产精品乱码视色| 亚洲AV香蕉一区区二区三区| 久久精品无码专区免费东京热| 亚洲精品网站在线观看不卡无广告 | heyzo亚洲精品日韩| 亚洲另类图片另类电影| 久青草视频在线观看免费| 免费毛片在线播放| 亚洲色图综合网站| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 香蕉视频在线观看免费| 久久久久免费看黄A片APP| 亚洲AV无码第一区二区三区 | 亚洲v国产v天堂a无码久久| 亚洲一区二区久久| 免费在线观看一级片| 亚洲欧好州第一的日产suv| 久久久久久国产精品免费免费男同| 亚洲AV无码乱码在线观看| 亚洲kkk4444在线观看|