2010-05-04 3 views
1

В настоящее время я работаю над проектом для Adobe Air (1.5.3), и мне нужно разархивировать файл, скопировать часть его содержимого в другой файл.Использование Fzip lib под Adobe Air App

Затем я увидел людей, говорящих о Fzip (http://codeazur.com.br/lab/fzip) lib. Проблема в том, что я не знаю, как «импортировать» или использовать эту библиотеку с Javascript и Adobe Air, поскольку Javascript не имеет директивы import.

Как я могу это сделать?

ответ

1

Я опубликовал демо-версию того, как использовать FZip с Adobe Air и Javascript. Надеюсь, он надеется на то, что все будет ясно.

Короче, вам нужно вытащить SWF-файл из скомпилированного SWC (если применимо) и получить доступ к классу.

Демонстрация довольно проста и на самом деле просто доказательство концепции, но вы должны иметь возможность ее легко расширять.

http://www.drybydesign.com/2010/05/12/adobe-air-fzip-without-flex/

-Ari

+0

Так просто и так сложно найти решение. Ари, спасибо! Я буду распространять слово. –

1

пример Ари довольно хорошо, и это заставило меня началось, но он не учел некоторые довольно важный материал - как писать распакованные файлы обратно на диск. И zip-файл не нужно размещать удаленно - дело об AIR заключается в том, что он работает как локальное приложение ... вот пример, который основывается на хорошем старте, который нам дал Ари. (Я использую 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>