`

创建多窗口以及弹出窗口与父窗口的通讯

    博客分类:
  • flex
阅读更多

今天说一下AIR中的window, 作为桌面应用,免不了会有多窗口存在的可能。所以这也是AIR于Flex web的另一区别。flex web应用的“窗口”都是内部窗口,不管你怎么拖拽它也不会超出flash player的范围。而我们今天说的air中的窗口,是没有范围限制的,任一窗口都可以说是一个“独立”的存在,不受主程序窗口的限制。

Demo主要有以下功能

1. 简单继承window类创建MyWindow。加入parentWindow属性以及advOpen()方法, 设置MyWindow默认样式。
2. 从主程序中弹出窗口1,从窗口1中弹出窗口2。每个窗口里有image和button
3. 窗口1可以关闭主程序窗口,窗口2可以关闭窗口1。(关闭父窗口)

1. 简单继承window类创建MyWindow。加入parentWindow属性以及advOpen()方法, 设置MyWindow默认样式。

下面是我继承于WIndow的MyWindow,构造方法中设置了默认样式,parentWindow用于在打开窗口时保存父窗口对象。

public class MyWindow extends Window
{
public var parentWindow:Object;

public function MyWindow()
{
this.systemChrome = “none”; //不显示系统窗口
this.showStatusBar = false; //不显示底部状态栏
this.showGripper = false; //不显示底部大小控制按钮
}

/**
* 自定义open()打开窗口并且保存调用此方法的对象
*/
public function advOpen(parentWindow:Object,openWindowActive:Boolean = true):void{
this.parentWindow = parentWindow;
this.open(true)
}

}

2. 从主程序中弹出窗口1,从窗口1中弹出窗口2。每个窗口里有image和button

3. 窗口1可以关闭主程序窗口,窗口2可以关闭窗口1。(关闭父窗口)

下面是窗口1类,继承于MyWindow。在主程序中用了与下面相同的openWin打开窗口1,可以看倒在调用winX.advOpen时传入了当前对象作为被打开窗口的parentWindow. 下面的closeParent()中利用保存的 parentWindow关闭父窗口。

<local:MyWindow xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” width=”435″ height=”320″ xmlns:local=”*”>
<mx:Script>
<![CDATA[
import mx.core.Window;

//打开窗口2
private function openWin():void{
var win2:PicTwo = new PicTwo();
win2.advOpen(this);
win2.move(500,50)
}

//关闭父窗口
private function closeParent():void{
if(this.parentWindow.hasOwnProperty("close")){ //检查父窗口中是否有close方法。
this.parentWindow.close(); //调用父窗口的close方法
}
}
]]>
</mx:Script>
<mx:Canvas>
<mx:Image source=”@Embed(’images/2.png’)” />
<mx:Button label=”打开我的表情2″ click=”openWin()” x=”325″ y=”174″/>
<mx:Button label=”关闭父窗口” click=”closeParent()” x=”342″ y=”204″/>
</mx:Canvas>
</local:MyWindow>

主程序

<mx:WindowedApplication showStatusBar=”false” showGripper=”false” xmlns:mx=”http://www.adobe.com/2006/mxml” width=”430″ height=”328″ layout=”absolute”>
<mx:Script>
<![CDATA[
import mx.core.Window;
private function openWin():void{
//新建window对象
var win:PicOne = new PicOne();
win.advOpen(this); //弹出窗口
win.move(50,50);

}
]]>
</mx:Script>
<mx:Canvas>
<mx:Image source=”@Embed(’images/1.png’)” />
<mx:Button label=”打开我的表情1″ click=”openWin()” x=”325″ y=”174″/>
</mx:Canvas>

</mx:WindowedApplication>

popupwindow

源文件下载
Demo

分享到:
评论

相关推荐

    C#中子窗口与父窗口通信

    然后设置Form2的可见性为true,使得子窗口弹出。 接下来是Form2的部分: ```csharp public partial class Form2 : Form { public Form1 form1; public Form2() { InitializeComponent(); } public void ...

    MCGS与三菱PLC通讯设置设备窗口资料指导与实例.doc

    《MCGS与三菱PLC通讯设置设备窗口详解及应用实例》 在自动化控制系统中,MCGS(Magic Control Graphic System)作为一个强大的监控系统,常用于实现与可编程逻辑控制器(PLC)的数据交换,而三菱PLC是广泛应用的...

    EC20系列PLC与昆仑通态通讯手册

    4. **配置通用串口父设备**:双击“通用串口父设备”或右键选择“属性”,在弹出的“通用串口设备属性编辑”对话框中设置触摸屏与PLC通讯的串口端口号、波特率、校验方式、数据位和停止位等参数,确保这些参数与PLC...

    javaScript聊天窗口

    JavaScript 提供了多种方式来创建弹出窗口,其中最常见的两种方法是 `window.open()` 和 `window.showModalDialog()` 及 `window.showModelessDialog()` 方法。 ##### 2.1 `window.open()` `window.open()` 方法...

    Android SMS 短信内容显示在一个 泡泡 形状的窗口中.zip

    综上所述,要实现在Android应用中以泡泡形状的窗口显示短信内容,涉及到自定义视图、数据获取与解析、布局管理、动画效果、事件处理以及权限管理等多个方面。通过这种方式,我们可以为用户提供一个独特且富有吸引力...

    昆仑通态触摸屏软件使用方法.pdf

    3. **填写基本信息**:此时会弹出一个对话框让用户输入项目的名称以及其他相关信息。 4. **保存位置**:用户还需要指定工程文件的保存路径,通常情况下,这些文件会被保存在`D:\MCGS\WORK\`目录下,例如`水位控制...

    澳泰与昆仑通泰MCGS连接教程.pdf

    它指导用户如何弹出工作台,访问设备窗口,通过双击操作来添加设备,并且在设备工具箱中选择设备管理,以此来配置和管理自动化设备。 其次,文档详细讲解了如何通过双击通用串口父设备和标准ModbusRTU来添加和设置...

    仿QQ弹窗效果

    本项目名为"仿QQ弹窗效果",旨在模仿QQ应用中的弹出窗口功能,提供一个基础的PopupWindow实现,供开发者参考和扩展。 首先,我们要理解`PopupWindow`是Android系统提供的一个类,它可以在屏幕上的任意位置显示一个...

    PT80-NEAT开发指南v1.1

    窗口的创建和删除 ................................................................................................................................ 22 窗口类型 .............................................

    易语言 茶凉专用模块

    子程序 弹出光驱, 逻辑型, 公开, 弹出光驱门。 mciSendString .子程序 到短路径, 文本型, 公开, 取指定路径的短路径名(返回收缩后的路径,无效返回空文本)如: c:\program files\ 收缩后为:C:\PROGRA~1\ .参数 文件名...

    Cursor_Mouse光标和鼠标控制

    子对话框通常用于提供更具体的设置或信息,它们可以在主对话框上弹出或嵌入。 - 对话框之间的通讯通常是通过消息机制进行的,比如`WM_COMMAND`消息,当用户在子对话框中进行操作时,子对话框可以通过发送自定义消息...

    VC实现的仿QQ自动停靠隐藏的对话框

    在UI设计中,停靠是指将窗口或控件固定在父窗口的边缘,以便在窗口大小改变时保持相对位置。在仿QQ的自动停靠隐藏功能中,对话框会在用户将鼠标移开时自动停靠到屏幕边缘并隐藏,当鼠标接近时又会自动弹出。 实现这...

    part3 JS Additional articles.pdf

    **Popups**(弹出窗口)是通过 `window.open()` 方法创建的。它可以用来显示额外的信息给用户,比如登录界面或者确认对话框。但是由于弹出窗口可能被浏览器的安全设置拦截,因此在实际开发中应谨慎使用。 ### Cross...

    易语言程序免安装版下载

    修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8. 改进应用接口支持库中“设置屏幕分辨率”命令。 9. 修改外部数据库在“表中记录数为零”时可能导致程序崩溃的...

    仿微信popupwindow,android源码

    在Android开发中,PopupWindow是一个非常实用的组件,它能够实现类似弹出窗口的效果,用于显示临时信息或者提供用户交互。微信作为一款流行的即时通讯应用,其用户界面设计和交互体验备受开发者关注,尤其是它的...

    Android高级应用源码-仿微信popupwindow.zip

    PopupWindow是Android系统中一个非常实用的UI组件,它可以在界面任意位置弹出一个窗口,常用于下拉菜单、提示信息或者快速操作等场景。在微信这款流行的即时通讯应用中,PopupWindow被广泛应用于各种交互设计,如...

    Windows 系统错误代码简单分析

     1021 在易失的父键下不能创建固定的子键。  1022 通知的更改请求已经完成,并且返回信息还没有被送到调用者的缓冲区中。调用者需要列举所有文件以找到改动的内容。  1051 已将停止控制发送给与其他运行服务...

    网管教程 从入门到精通软件篇.txt

    Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

Global site tag (gtag.js) - Google Analytics