Pay for Hesitation: ActionScript 讀zip檔
Pay for Hesitation
Ideas are Worthless Unless Acted Upon
Pages
Home
Authors
2008年3月25日 星期二
ActionScript 讀zip檔
FZip是AS3的library,用來讀寫zip檔.
http://codeazur.com.br/lab/fzip/
demo(從zip讀1000個png圖檔並顯示)
API
package
{
import deng.fzip.FZip;
import deng.fzip.FZipFile;
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.*;
import flash.net.URLRequest;
import flash.text.TextField;
public class FZipTest extends Sprite
{
private var zip:FZip;
private var tf:TextField;
private var index:uint = 0;
private var count:uint = 0;
private var done:Boolean = false;
public function FZipTest() {
// lets not scale
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
// status text
tf = new TextField();
tf.height = 20;
tf.width = 576;
addChild(tf);
// load zip
zip = new FZip();
zip.addEventListener(Event.OPEN, onOpen);
zip.addEventListener(Event.COMPLETE, onComplete);
zip.load(new URLRequest("famfamfam_silk_icons_v013.zip"));
}
private function onOpen(evt:Event):void {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onComplete(evt:Event):void {
done = true;
}
private function onEnterFrame(evt:Event):void {
// we only want to add 32 images at once to the display list
// to save a bit of processor load when zip is cached
for(var i:uint = 0; i < 32; i++) {
// any new files available?
if(zip.getFileCount() > index) {
// yeah, get it
var file:FZipFile = zip.getFileAt(index);
// is this a png in the icons folder?
if(file.filename.indexOf("icons/") == 0 && file.filename.indexOf(".png") != -1) {
// yeah, display it
var loader:Loader = new Loader();
loader.loadBytes(file.content);
loader.x = 18 * (count % 32);
loader.y = 18 * Math.floor(count / 32) + 20;
addChild(loader);
count++;
}
index++;
} else {
// no new files available
// check if we're done
if(done) {
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
// and exit the loop
break;
}
}
// display load status
tf.text = count + " files loaded";
}
}
}
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言