AIR应用通常不能像QQ那样能进行多开操作。
为了让一个用AIR做的客户端能实现多任务,我找到得办法是运行程序时自动修改配置文件的id标签内的内容。
然后再关闭程序时又必须还原成原有的id,因为只有id一致才能实现更新功能。
主程序:multiapp.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="windowedapplication1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import mx.events.FlexEvent;
import mx.formatters.DateFormatter;
private var oldid:String;
private var reg:RegExp = /<id>.*<\/id>/;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
var df:DateFormatter = new DateFormatter();
df.formatString = "YYYYMMDDHHNNSS";
var time:String = df.format(new Date());
var newid:String = "<id>com.roy"+time+"</id>";
var f:File =new File(File.applicationDirectory.resolvePath(
"META-INF/AIR/application.xml").nativePath);
var fs:FileStream = new FileStream();
fs.open(f,FileMode.READ);
var str:String = new String(fs.readUTFBytes(fs.bytesAvailable));
oldid = str.match(reg).toString();
str = str.replace(reg,newid);
fs.open(f,FileMode.WRITE);
fs.writeUTFBytes(str);
fs.close();
label.text = newid;
//有多个在运行的程序时只关闭一个运行程序就无法再打开新程序
//必须监听系统最后一个相同程序关闭时,才能初始化id
//解决办法:
//记录运行前id,若为初始ID则在关闭该程序时初始化id,否则不操作
if(oldid == "<id>com.roy</id>")
{
this.addEventListener(Event.CLOSE,returnId);
}
}
protected function returnId(e:Event):void
{
var f:File =new File(File.applicationDirectory.resolvePath(
"META-INF/AIR/application.xml").nativePath);
var fs:FileStream = new FileStream();
fs.open(f,FileMode.READ);
var str:String = new String(fs.readUTFBytes(fs.bytesAvailable));
str = str.replace(reg,oldid);
fs.open(f,FileMode.WRITE);
fs.writeUTFBytes(str);
fs.close();
}
]]>
</fx:Script>
<s:VGroup gap="20">
<s:Label text="已将配置文件id更改为:" color="0xff0000" fontSize="20"/>
<s:Label id="label" color="0x0000ff" fontSize="20"/>
</s:VGroup>
</s:WindowedApplication>
此程序中配置文件multiapp-app.mxml中,id标签必须为<id>com.roy</id>。
分享到:
相关推荐
【标题】"论坛小程序多开1.0.39.zip" 涵盖的是一个针对论坛的小程序开发项目,版本号为1.0.39。这个压缩包中包含了实现论坛功能的小程序的源代码,以及相关的前后端开发资源。 【描述】"论坛小程序源码 前后端 亲测...
drv_air780e.c 和 drv_air780e.h 是两个关键的源代码文件,它们构成了AIR780E驱动程序的核心。drv_air780e.c 文件通常包含了驱动程序的具体实现,包括初始化模组、数据传输、接收处理、错误检测以及位置定位等功能。...
基于Android系统的Air程序开发涉及到的知识点广泛,涵盖从基础概念到实际应用的各个环节。 首先,我们要了解Adobe AIR的核心特性,它提供了丰富的用户界面组件和多媒体支持,包括视频、音频、动画等。AIR还允许应用...
AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正 ...
标题中的“AIR程序窗口 基于内容 动态缩放窗口”指的是使用Adobe AIR技术开发的桌面应用程序,它的窗口能够根据内容自动调整大小,并且在缩放过程中保持良好的视觉效果,比如实现圆角设计。这涉及到软件界面设计中的...
标题中的"最新AIR安装程序免费分享"指的是该压缩包中包含的是Adobe AIR的最新版本安装程序,通常这些安装程序会包含所有必要的组件,用于在用户的计算机上安装和运行基于AIR技术开发的应用程序。用户可以通过这个...
【标题】"播放器界面+Air程序" 涉及的主要知识点是Adobe AIR技术以及音频播放器界面设计。Adobe AIR(Adobe Integrated Runtime)是一个跨平台的运行环境,允许开发人员使用HTML、CSS、JavaScript或者Flex、...
### 基于Android系统的AIR程序开发 #### 一、概览 Adobe AIR(Adobe Integrated Runtime)是一款由Adobe系统公司开发的跨平台运行环境,它允许开发者使用HTML、JavaScript、Flash以及Flex等技术来构建原生应用。...
标题中的“让AIR程序脱离运行环境(比较简单的实现方法)”指的是将Adobe AIR应用程序转换为独立的可执行文件,使得用户无需安装AIR运行环境就能运行该程序。这通常是为了方便分发和使用,特别是对于那些不熟悉或...
本压缩包文件“独立air应用程序打包的附件”显然包含了与创建和分发独立AIR应用相关的组件和资源。 标题中的“独立air应用程序打包”指的是将一个完整的AIR应用打包成一个可独立运行的文件,用户下载后无需额外安装...
解决AIR对ADOBE AIR的依赖,软件绿色版
使用Flex开发Adobe AIR程序--桌面快捷方式管理器,适合新手进一步熟悉api,遇到典型的问题,1)调用外部exe文件,2)打包,3)读写文件,路径问题,...
在探讨“AIR 2.0调用应用程序”这一主题时,我们需要深入了解Adobe Integrated Runtime(AIR)的概念以及在AIR 2.0版本中如何与本地操作系统交互。AIR是一种跨平台的运行环境,允许开发者使用HTML、CSS、JavaScript...
Adobe AIR(Adobe Integrated Runtime)是一个跨平台的应用程序运行环境,由Adobe公司开发。它允许开发者使用Web技术(HTML、JavaScript和Flash/Flex)构建富互联网应用(Rich Internet Applications,简称RIAs),...
《Air202 MQTT测试程序详解》 在物联网(IoT)领域,MQTT(Message Queuing Telemetry Transport)协议因其轻量级、低功耗和高可靠性的特性,成为了设备间通信的重要选择。本文将深入探讨Air202 MQTT测试程序,包括...
这篇教程应该算是AIR的 Hello world,写给那些知道一点AIR,想要开始AIR开发的人。读这篇教程你可以没有任何Flex的基础,我会告诉你如何创建你的第一个项目,并且发布一个HelloWorld程序。
在本文中,我们将深入探讨如何使用Flex SDK创建第一个桌面Adobe Integrated Runtime (AIR)应用程序。首先,确保你已经安装了运行时环境并配置了Flex 3 SDK。主要涉及的工具包括AMXMLC编译器、AIR Debug Launcher ...
《深入理解AIR SQLite管理程序与嵌入式数据库技术》 SQLite是一款轻量级的、开源的、自包含的、无服务器、零配置、事务性的SQL数据库引擎,它被广泛应用于移动应用、桌面应用以及嵌入式系统中。本文将基于“AIR ...