AIR原来也是可以多开的[转载]


package cn.love813.zealot.utils
{
import flash.desktop.NativeApplication;
import flash.events.Event;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;

import spark.components.WindowedApplication;
/**
*
* @author Dynasty Ming
*
*/
public class MultiApplicationUtil
{
/**
*應用程序路徑文件
*/
private var _file:File;
/**
*應用程序的XML配置
*/
private var _runTimeXML:String;
/**
*應用程序原生ID
*/
private var _id:String;
public function MultiApplicationUtil(main:WindowedApplication)
{
_id=main.className;
initID();
}
private function initID():void
{
//這得到那個主應用的XML
_file=new File(File.applicationDirectory.nativePath+'/META-INF/AIR/'+'application.xml');
_file.addEventListener(Event.COMPLETE,getFile);
_file.load();

}

protected function getFile(e:Event):void
{
var fs:FileStream=new FileStream();
fs.open(_file,FileMode.READ);
//把里面的數據讀出來 你懂的
_runTimeXML=fs.readUTFBytes(_file.data.bytesAvailable);
fs.close();
var version:String=(NativeApplication.nativeApplication.runtimeVersion).slice(0,3);
changeID(fs);
}
/**
*改變 ID 以便啟動多個
* @param fs
*
*/
private function changeID(fs:FileStream):void
{
var ns:String='<id>';
var ins:String='</id>';
var b:int=_runTimeXML.search(ns);
var e:int=_runTimeXML.search(ins);

var ID:String=_runTimeXML.slice(b+ns.length,e);
var num:int=int(ID.substring(_id.length,ID.length));

num++;
_runTimeXML=_runTimeXML.replace(ID,_id+num);
fs.open(_file,FileMode.WRITE);
fs.writeUTFBytes(_runTimeXML);
fs.close();
}

}
}


转载的,使用的时候,只要在WindowApplication中,new一下这个类,并且把自己传进去,就OK鸟,但是调试的时候,要注释掉这个new,不然会出错。

转载连接:
[url]http://zeusami.iteye.com/blog/1174681[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值