11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 2794|回复: 4
上一主题 下一主题

[AIR 开发] AIR程序多开,AIR设置XML配置后可以允许打开多个程序

[复制链接] TA的其它主题
发表于 2020-2-29 12:39:28 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 风雨AS3 于 2020-2-29 12:41 编辑

转载:ITeye博客
网址:https://www.iteye.com/blog/mad-roy-1225788
作者:mad_Roy


AIR应用通常不能像QQ那样能进行多开操作。

为了让一个用AIR做的客户端能实现多任务,我找到得办法是运行程序时自动修改配置文件的id标签内的内容。

然后再关闭程序时又必须还原成原有的id,因为只有id一致才能实现更新功能。

主程序:multiapp.mxml
[Actionscript3] 纯文本查看 复制代码
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();
}


此程序中配置文件multiapp-app.mxml中,id标签必须为<id>com.roy</id>。

评分

参与人数 1银子 +10 贡献 +1 收起 理由
TKCB + 10 + 1 11RIA 怒1024个赞!!!

查看全部评分

发表于 2020-2-29 17:39:34 | 显示全部楼层
【11RIA 闪客社区,评分公示】:
是否有价值:一般(银子 +10  贡献 +1)
是否原创:否
是否翻译:否
如对自己的评分有疑问,则咨询版主、管理员等。
回复

使用道具 举报

发表于 2020-3-4 15:15:40 | 显示全部楼层
回复

使用道具 举报

发表于 2020-3-6 00:19:37 | 显示全部楼层
本帖最后由 TKCB 于 2020-3-6 00:20 编辑

楼上会玩!!!

回复

使用道具 举报

发表于 2020-8-2 22:12:43 | 显示全部楼层

无敌的啊 看看学习下啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表