`

flex PopUpManager弹出窗口

    博客分类:
  • Flex
 
阅读更多
flex PopUpManager类

  PopUpManager 类 PopUpManager 类ActionScript 类名称mx.managers.PopUpManager

  PopUpManager 类的方法摘要

  PopUpManager.createPopUp() 创建弹出窗口。

  PopUpManager.deletePopUp() 删除由调用PopUpManager.createPopUp() 而创建的弹出窗口。

  PopUpManager.createPopUp(parent, class, modal [, initobj, outsideEvents])

  参数:parent 对弹出窗口所基于的窗口的引用。

  class 对要创建的对象的类的引用。

  modal 一个布尔值,它指示该窗口是(true) 否(false) 是模式

  initobj 一个包含初始化属性的对象。此参数是可选的。

  outsideEvents 一个布尔值,指示在用户单击窗口以外的区域时是(true) 否(false) 触发事件。此参数是可选的。



1.PopUpManager--createPopUp与addPopUp区别

  createPopUp:是上来先设置好弹出方式,然后在new出来一个TitleWindow的对象,然后通过此对象设置他的变现形式。

addPopUp:是先new出来对象,设置好表现形式,然后在选择弹出来的方式。

一定要注意new对象与弹出方式的先后顺序。

addPopUp代码

<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  
        layout="vertical"  
        verticalAlign="middle"  
        backgroundColor="white"  
        creationComplete="init()">   
  
    <mx:Script>   
        <![CDATA[   
            import mx.controls.Label;   
            import mx.events.CloseEvent;   
            import mx.containers.TitleWindow;   
            import mx.managers.PopUpManager;   
  
            private var titleWindow:TitleWindow;   
  
            private function init():void {   
                var label:Label = new Label();   
                label.text = "Hello world";   
  
                titleWindow = new TitleWindow();   
                titleWindow.title = "Custom title";   
                titleWindow.showCloseButton = true;   
                titleWindow.width = 240;   
                titleWindow.height = 180;   
                titleWindow.addEventListener(CloseEvent.CLOSE, titleWindow_close);   
                titleWindow.addChild(label);   
  
                PopUpManager.addPopUp(titleWindow, this, true);   
                PopUpManager.centerPopUp(titleWindow);   
            }   
  
            private function titleWindow_close(evt:CloseEvent):void {   
                PopUpManager.removePopUp(titleWindow);   
            }   
        ]]>   
    </mx:Script>   
  
    <mx:Button label="Launch TitleWindow" click="init()" />   
  
</mx:Application>  
createPopUp代码:

<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  
        layout="vertical"  
        verticalAlign="middle"  
        backgroundColor="white"  
        creationComplete="init()">   
  
    <mx:Script>   
        <![CDATA[   
            import mx.managers.PopUpManagerChildList;   
            import mx.controls.Label;   
            import mx.events.CloseEvent;   
            import mx.containers.TitleWindow;   
            import mx.managers.PopUpManager;   
  
            private var titleWindow:TitleWindow;   
  
            private function init():void {   
                var label:Label = new Label();   
                label.text = "Hello world";   
                titleWindow = new TitleWindow();   
                titleWindow = TitleWindow(PopUpManager.createPopUp(this,TitleWindow,true));   
                titleWindow.title = "Custom title";   
                titleWindow.showCloseButton = true;   
                titleWindow.width = 240;   
                titleWindow.height = 180;   
                titleWindow.addChild(label);   
                titleWindow.addEventListener(CloseEvent.CLOSE, titleWindow_close);   
                               PopUpManager.centerPopUp(titleWindow);   
            }   
  
            private function titleWindow_close(evt:CloseEvent):void {   
                PopUpManager.removePopUp(titleWindow);   
            }   
        ]]>   
    </mx:Script>   
  
    <mx:Button label="Launch TitleWindow" click="init()" />   
  
</mx:Application>  
2.弹出窗口为DataGrid添加新数据



(1)Note.as

package 

  public class Note 
  { 
    public var author:String; 
    public var topic:String; 
    public var description:String; 
  } 
}


(2)AddNote.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="348" height="218"
title="Add A Note">
  <mx:Metadata>
    [Event(name="SaveNote")] 
  </mx:Metadata>
  <mx:Script>
   <![CDATA[
     import mx.managers.PopUpManager;       
     //PopUpManager.createPopUp() 创建弹出窗口
     private function close():void
     {
       PopUpManager.removePopUp(this);
     }
     
     private function save():void
     {
       this.dispatchEvent(new Event("SaveNote"));
     }
   ]]>
</mx:Script>
  <mx:Label text="Author" x="35" y="10"/>
  <mx:TextInput id="author" width="150" x="84" y="8"/>
  <mx:Label text="Topic"  y="36" x="42"/>
  <mx:TextInput id="topic" width="150" x="84" y="34"/>
  <mx:Label text="Description"  y="62" x="10"/>
  <mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
  <mx:Button label="Cancel" click="close()" x="193" y="146"/>
  <mx:Button label="Save" click="save()" x="264" y="146"/>
</mx:TitleWindow  >



(3)Test.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300"
creationComplete="init()">
  <mx:Script>
   <![CDATA[
     import mx.managers.PopUpManager;
     import mx.collections.ArrayCollection;
   
     [Bindable]
     private var notes:ArrayCollection = new ArrayCollection();
   
     private var addNoteScreen:AddNote;
   
     private function init():void
     {
       addNoteScreen = new AddNote();
       addNoteScreen.addEventListener("SaveNote", saveNote);
     }
   
     private function addNote():void
     {
       PopUpManager.addPopUp(addNoteScreen, this, true);
       PopUpManager.centerPopUp(addNoteScreen);
       addNoteScreen.author.text = "";
       addNoteScreen.topic.text = "";
       addNoteScreen.description.text = "";
     }
   
     private function saveNote(e:Event):void
     {
       var note:Note = new Note();
       note.author = addNoteScreen.author.text;
       note.topic = addNoteScreen.topic.text;
       note.description = addNoteScreen.description.text;
       notes.addItem(note);
       PopUpManager.removePopUp(addNoteScreen);
     }
   ]]>
</mx:Script>
  <mx:Panel title="Notes"
   width="100%" height="100%"
   layout="vertical" horizontalAlign="right"
   paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
    <mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
      <mx:columns>
        <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
        <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
        <mx:DataGridColumn headerText="Description" dataField="description"/>
      </mx:columns>
    </mx:DataGrid>
    <mx:Button label="Add Note" click="addNote()"/>
  </mx:Panel>
</mx:Application>

摘自:http://secyaher.blog.163.com/blog/static/3895577200961515754123/
分享到:
评论
2 楼 shuiyunbing 2015-08-10  
请问下 flex 弹出的窗口都是 拖动都在浏览器内部,能否脱离浏览器。
1 楼 ggggwffgqeg 2014-11-03  
//清除所有titlewindows 删除由 createPopUp() 或 addPopUp() 方法弹出的弹出窗口。
var sm:ISystemManager=this.systemManager;
var i:int=sm.numChildren;
for (var j:int=0;j<i;j++){
if(sm.getChildAt(j) is TitleWindow){
PopUpManager.removePopUp(sm.getChildAt(j) as TitleWindow);
}
}

相关推荐

Global site tag (gtag.js) - Google Analytics