Flex中通过isPopUp属性创建一个不可拖动TitleWindow的例子

By Minidxer | August 17, 2008

在前面的Flex中如何利用mouseDown与stopImmediatePropagation事件创建可拖动(draggable)与不可拖动(undraggable)对话框的例子,我们了解了如何创建一个不可拖动的对话框。接下来的例子演示了Flex中如何通过isPopUp属性,创建一个不可拖动TitleWindow。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application name="PopUpManager_TitleWindow_isPopUp_test"
  3.         xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white">
  7.  
  8.     <mx:Script>
  9.         <![CDATA[
  10.             import mx.containers.TitleWindow;
  11.             import mx.managers.PopUpManager;
  12.  
  13.             private var titleWin:MyTitleWin;
  14.  
  15.             private function launch():void {
  16.                 titleWin = PopUpManager.createPopUp(this, MyTitleWin, true) as MyTitleWin;
  17.                 PopUpManager.centerPopUp(titleWin);
  18.             }
  19.         ]]>
  20.     </mx:Script>
  21.  
  22.     <mx:ApplicationControlBar dock="true">
  23.         <mx:Button id="btn"
  24.                 label="Launch TitleWindow PopUp"
  25.                 click="launch();" />
  26.     </mx:ApplicationControlBar>
  27.  
  28. </mx:Application>
下面是MyTitleWin.mxml的代码:
Download: MyTitleWin.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="absolute"
  4.         showCloseButton="true"
  5.         title="TitleWindow"
  6.         width="300"
  7.         height="200"
  8.         close="titleWin_close(event);">
  9.  
  10.     <mx:Script>
  11.         <![CDATA[
  12.             import mx.core.IFlexDisplayObject;
  13.             import mx.events.CloseEvent;
  14.             import mx.managers.PopUpManager;
  15.  
  16.             private function titleWin_close(evt:CloseEvent):void {
  17.                 PopUpManager.removePopUp(evt.target as IFlexDisplayObject);
  18.             }
  19.  
  20.             private function checkBox_change(evt:Event):void {
  21.                 this.isPopUp = checkBox.selected;
  22.             }
  23.         ]]>
  24.     </mx:Script>
  25.  
  26.     <mx:Label text="Drag this window"
  27.             horizontalCenter="0"
  28.             verticalCenter="0" />
  29.  
  30.     <mx:ControlBar>
  31.         <mx:CheckBox id="checkBox"
  32.                 label="isPopUp:"
  33.                 labelPlacement="left"
  34.                 selected="true"
  35.                 change="checkBox_change(event);" />
  36.     </mx:ControlBar>
  37.  
  38. </mx:TitleWindow>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Flex, 网络资源 | No Comments » | 1,182 views Tags: , ,

Search Posts