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]