Listato completo della classe Test_FZip
package {
import deng.fzip.FZip
import deng.fzip.FZipFile
import flash.display.Sprite;
import flash.text.TextField;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.Loader;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class Test_FZip extends Sprite
{
private var zip:FZip;
private var file:FZipFile;
private var testo:TextField;
private var file_attuale:uint = 0;
private var conta:uint = 0;
private var fatto:Boolean = false;
public function Test_FZip()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
testo = new TextField();
testo.height = 20;
testo.width = 576;
addChild(testo);
// load zip
zip = new FZip();
zip.addEventListener(Event.OPEN, Apri);
zip.addEventListener(Event.COMPLETE, Completo);
zip.load(new URLRequest("icone.zip"));
}
private function Apri(evt:Event):void{
addEventListener(Event.ENTER_FRAME,esamina);
}
private function Completo(evt:Event):void{
fatto = true;
}
private function esamina(evt:Event):void {
// Se non siamo all'ultimo file dell'archivio
if(zip.getFileCount() > file_attuale) {
// Ricaviamo il file attuale
file = zip.getFileAt(file_attuale);
// Controlliamo che sia un PNG presente nella cartella ICONS
if(file.filename.indexOf("icons/") == 0 && file.filename.indexOf(".png") != -1){
// Lo carichiamo...
var loader:Loader = new Loader();
loader.loadBytes(file.content);
// ...e lo posizioniamo sullo stage
loader.x = 18 * (conta % 32);
loader.y = 18 * Math.floor(conta / 32) + 20;
addChild(loader);
// Incrementiamo il numero di icone caricate
conta++;
// Mostriamo il numero di icone caricate nel campo di testo
testo.text = conta + " icone caricate";
}
// Passiamo al file successivo
file_attuale++;
} else {
// Se invece siamo all'ultimo file
if(fatto) { // Se l'esame dell'archivio è stato completato
// Rimuoviamo l'EnterFrame
removeEventListener(Event.ENTER_FRAME,esamina);
// Mostriamo nel campo di testo la dicitura per il caricamento completato
testo.text = "Tutte le icone sono state caricate";
}
}
}
}
}