flex PopUpManager弹出窗口

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/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值