我目前正在为Adobe Air(1.5.3)开发一个项目,我需要解压缩一个文件,将其部分内容复制到另一个文件中。
然后我看到有人在谈论Fzip(http://codeazur.com.br/lab/fzip)lib。问题是我不知道如何使用Javascript和Adobe Air“导入”或使用此库,因为Javascript没有import指令。
我怎样设法做到这一点?
答案 0 :(得分:1)
我发布了一个如何使用Adobe Air和Javascript使用FZip的演示。我希望它希望能为你解决问题。
简而言之,您需要从已编译的SWC(如果适用)中提取SWF文件并访问该类。
演示非常简单,只是一个概念验证,但您应该能够轻松扩展它。
http://www.drybydesign.com/2010/05/12/adobe-air-fzip-without-flex/
-Ari
答案 1 :(得分:1)
Ari的例子相当不错,它让我开始了,但他遗漏了一些非常重要的东西 - 比如将未压缩的文件写回磁盘。并且zip文件不必远程托管 - 关于AIR的事情就是它像本地应用程序一样运行......这是一个基于Ari给我们的良好开端的例子。 (我使用HTML5只是为了酷,时髦和现代!:) -
<!DOCTYPE HTML>
<html>
<head>
<title>Test Fzip</title>
<script type="application/x-shockwave-flash" src="scripts/fzip.swf"></script>
<script type="text/javascript" src="scripts/AIRAliases.js"></script>
<script type="text/javascript" src="scripts/AIRIntrospector.js"></script>
<script type="text/javascript" src="scripts/jquery-1.4.2.js"></script>
<script type="text/javascript">
var fzip;
if (window.runtime) {
if (!fzip)
fzip = {};
fzip.FZip = window.runtime.deng.fzip.FZip;
fzip.FZipFile = window.runtime.deng.fzip.FZipFile;
}
var file = air.File.documentsDirectory.resolvePath("test.zip");
//file.url
var zip = new fzip.FZip;
zip.addEventListener(air.Event.OPEN, onopen);
zip.addEventListener(air.Event.COMPLETE, oncomplete);
zip.load(new air.URLRequest(file.url.toString()));
function oncomplete(event) {
var count = zip.getFileCount();
alert(count);
for ( var idx = 0; idx < count; idx++)
{
var zfile = zip.getFileAt(idx);
// alert(zfile.filename);
var uzfile = air.File.applicationStorageDirectory.resolvePath(zfile.filename);
var stream = new air.FileStream();
stream.open( uzfile, air.FileMode.WRITE );
stream.writeBytes( zfile.content,0, zfile.content.length );
stream.close();
}
}
function onopen(event) {
alert("file is opened");
}
</script>
</head>
<body>
</body>
</html>