ZIP ArchivFZip ist eine Actionscript 3 Library, mit der man ZIP-Archive laden, modifizieren und sogar erstellen kann. Schon während des Ladevorgangs wird das Archiv bereits verarbeitet, wodurch man auf die bereits geladenen Inhalte zugreifen kann.

Nutzt man FZip in Verbindung mit Flash CS3, muss dem Archiv eventuell noch eine Checksumme (Adler32) hinzugefügt werden. Dazu liegt ein Python-Skript bei, das die Prüfsumme injiziert. Dieser Schritt entfällt bei Adobe AIR oder wenn die Dateien im Archiv unkomprimiert sind (z.B. bereits komprimierte JPG-Bilder).

CODE:
  1. python ./fzip-prepare.py test.zip

Hinweis: Leider funktionieren ZIP-Dateien, die man mit Mac OS X im Finder erstellt nicht (Fehlermeldung: "Data descriptors are not supported."). Werden die ZIPs jedoch über das Terminal erstellt, funktionieren sie problemlos. Der Befehl lautet:

CODE:
  1. zip test.zip picture.png

Die kurze Demo zeigt, wie man ein ZIP-Datei lädt und ausliest. In diesem Fall ist eine einzige Bilddatei im Archiv, die geladen und angezeigt wird.

Der Quellcode des Beispiels lautet:

Actionscript:
  1. import deng.fzip.FZip;
  2. import deng.fzip.FZipFile;
  3. import flash.events.*;
  4. import flash.display.Loader;
  5.  
  6. var zip:FZip = new FZip();
  7. zip.addEventListener(Event.COMPLETE, onComplete);
  8. zip.load(new URLRequest("test.zip"));
  9.        
  10.    
  11. function onComplete(evt:Event):void {
  12.     tf.text = "Anzahl der Dateien im Archiv: " + zip.getFileCount() + "\n";
  13.    
  14.     // erstes File im ZIP-Archiv laden
  15.     var file:FZipFile = zip.getFileAt(0);
  16.     tf.appendText ("Dateiname lautet: " + file.filename);
  17.  
  18.     // Bild laden
  19.     var myLoader:Loader = new Loader();
  20.     myLoader.loadBytes(file.content);
  21.     addChild(myLoader);
  22.    
  23. }

Link: FZip Demo anschauen (test.zip)
Link: FZip