原文http://uh.9ria.com/space-83684-do-blog-id-13696.html#
1,使用命令行将多个xml打包成zip
下载7-Zip.exe,我是从这里下的
http://www.qiannao.com/space/file/eyy88/-6211-7684-8f6f-4ef6/7-002dZip.exe/.page
将解压缩后的文件夹(这里命名为zip)放入xml文件夹
建立zip.bat文件,写入两行命令
path = %path%;zip/
7z a -tzip data.zip *.xml
保存并运行,就会在xml目录下生成data.zip文件,注意上面的-tzip,意思是生成,zip格式的,还可以生成.7z格式的,7z格式的文件大概会比zip格式文件,小30%,但是我没有找到可以解析.7z格式的as3类库,所以我用的zip
2,使用as3读取
下载as3 zip类库 我是从这里下的
http://nochump.com/blog/archives/15 ,下载
nochump-ziplib-105-src.zip
编写解析代码,大家注意看,byteArray 是如何变成String的。
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLStream;
import nochump.util.zip.ZipEntry;
import nochump.util.zip.ZipFile;
import nochump.util.zip.ZipOutput;
public class TestZip extends Sprite
{
//加载器
public var urlLoader:URLLoader = new URLLoader;
public function TestZip()
{
super();
//加载zip文件
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE,complete);
urlLoader.load(new URLRequest('nochump-ziplib-105-src.zip'));
}
public function complete(evt:Event):void{
var zip:ZipFile = new ZipFile(evt.target.data);
var entry:ZipEntry = zip.entries[4];
var s:String = String(zip.getInput(entry));//使用字节数组作为参数,传到String构造函数中生成字符串。
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLStream;
import nochump.util.zip.ZipEntry;
import nochump.util.zip.ZipFile;
import nochump.util.zip.ZipOutput;
public class TestZip extends Sprite
{
//加载器
public var urlLoader:URLLoader = new URLLoader;
public function TestZip()
{
super();
//加载zip文件
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE,complete);
urlLoader.load(new URLRequest('nochump-ziplib-105-src.zip'));
}
public function complete(evt:Event):void{
var zip:ZipFile = new ZipFile(evt.target.data);
var entry:ZipEntry = zip.entries[4];
var s:String = String(zip.getInput(entry));//使用字节数组作为参数,传到String构造函数中生成字符串。
var xml:XML = new XML(s);
}
}
}
}
}
}
官方demo中使用的是UrlStream,我个人更喜欢UrlLoader。
3,今天还有一个额外的收获,UrlSteam 可以做长连接用的,研究那么长时间as3,今天才知道,惭愧啊!