package { import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileReference; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.ByteArray; import org.asmax.util.ZipWriter; import org.asmax.util.ZipReader; /** * ... * @author Jaja */ public class Main extends Sprite { private var filePath:String = "images.zip"; private var saveTxt:TextField = new TextField; public function Main():void { var ul:URLLoader = new URLLoader; ul.dataFormat = URLLoaderDataFormat.BINARY; ul.addEventListener(Event.COMPLETE, loaded); ul.load(new URLRequest(filePath)); saveTxt.autoSize = TextFieldAutoSize.LEFT; saveTxt.background = true; saveTxt.backgroundColor = 0xCCCCCC; saveTxt.border = true; saveTxt.textColor = 0xFFFFFF; saveTxt.text = "点击此处将场景保存为zip文件"; saveTxt.addEventListener(MouseEvent.CLICK, saveZip); saveTxt.x = 20; saveTxt.y = 150; saveTxt.selectable = false; addChild(saveTxt); } private function loaded(event:Event):void { var bytes:ByteArray = event.target.data as ByteArray var zipReader:ZipReader = new ZipReader(bytes); for (var i:int = 0; i < zipReader.names.length; i++) { var loader:Loader = new Loader; loader.x = i * 150; addChild(loader); loader.loadBytes(zipReader.getFile(zipReader.names[i])); } } private function saveZip(event:MouseEvent):void { var bitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00FFFFFF); bitmapData.draw(this); var png:PNGEncoder = new PNGEncoder; var zipWriter:ZipWriter = new ZipWriter; zipWriter.comment = "欢迎加入AS3技术交流论坛:\nas-max.cn/bbs"; zipWriter.addFile("场景剪影/场景剪影.png", png.encode(bitmapData)); var txt:ByteArray = new ByteArray; txt.writeMultiByte("欢迎加入AS3技术交流论坛(as-max.cn),as-max.cn正式成立于2009.3.23日,现已拥有了一批技术过人的高手会员,在这里,我相信你一定能够得到想要的东西", "gb2312"); zipWriter.addFile("欢迎加入AS3技术交流论坛.txt", txt); zipWriter.finish(); var file:FileReference = new FileReference; file.save(zipWriter.byteArray, "场景剪影.zip"); } } }