flex解析加密zip檔案的方法(需知密鑰)

來源:互聯網
上載者:User

_urlLoader=new URLLoader();<br />_urlLoader.dataFormat=URLLoaderDataFormat.BINARY;<br />_urlLoader.addEventListener(Event.COMPLETE,parseFunc);<br />_urlLoader.addEventListener(ProgressEvent.PROGRESS,progressHandle);<br />_urlLoader.addEventListener(IOErrorEvent.IO_ERROR,ioHandler);<br />_urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler)<br />var _path:String=WarModel.getInstance().imgIp+StringUtil.substitute(URLConst.STATIC_FILES_PATH,WarModel.getInstance().lang,WarModel.getInstance().v1);<br />_urlLoader.load(new URLRequest(_path));</p><p>private function parseFunc(evt:Event):void<br />{<br />CONFIG::debug<br />{<br />Logger.debug("載入完成,開始解析",false,this);<br />}<br />var _by:ByteArray=evt.target.data;<br />_by.uncompress();<br />var _pos:int=_by.readInt();<br />var _keyLen:int=_by.readInt();<br />var _byData:ByteArray=new ByteArray();<br />if(_pos>0)<br />_by.readBytes(_byData,0,_pos);<br />var _key:String=_by.readUTFBytes(_keyLen);<br />_by.readBytes(_byData,_pos,0);<br />WarModel.getInstance().key=_key;<br />CONFIG::debug<br />{<br />Logger.debug("取Key:"+_key+"|"+_pos+"|"+_keyLen,false,this);<br />}<br />var _zipFile:ZipFile=new ZipFile(_byData);<br />var _zipEntryArr:Array=_zipFile.entries;<br />var _len:int=_zipEntryArr.length;<br />_parseQueue=[];<br />for(var i:int=0;i<_len;i++)<br />{<br />var _entry:ZipEntry=_zipEntryArr[i];<br />if(!_entry.isDirectory())<br />{<br />var _entryName:String=_entry.name;<br />var _index:int=_entryName.lastIndexOf("/");<br />var _fileName:String;<br />if(_index>=0)<br />{<br />_fileName=_entryName.substring(_index+1,_entryName.length);<br />}<br />else<br />{<br />_fileName=_entryName;<br />}<br />CONFIG::debug<br />{<br />Logger.debug("File:"+_fileName,false,this);<br />}<br />var _resultBy:ByteArray=_zipFile.getInput(_entry);<br />var _resultStr:String;<br />var _result:Object;<br />if(_fileName.indexOf(".swf")==-1)<br />{<br />_resultStr=_resultBy.readMultiByte(_resultBy.bytesAvailable,"utf-8");<br />_result=_resultStr;<br />}<br />else<br />_result=_resultBy;</p><p>if(_fileName=="Labor.xml")<br />{<br />parseLaborsInfo(_result.toString());<br />}</p><p>private function parseLaborsInfo(result:String):void<br />{<br />var _xml:XML=XML(result);<br />var _loborList:XMLList=_xml.Labor;<br />var _allArr:Array = [];<br />for each(var lobor:XML in _loborList)<br />{<br />var _loborVO:StaticLoborVO = new StaticLoborVO();<br />_loborVO.id= lobor[0].@id;<br />_loborVO.name= lobor[0].laborName;<br />_loborVO.image= StringUtil.substitute(lobor[0].laborImage,WarModel.getInstance().imgIp);<br />_loborVO.level= lobor[0].level;<br />_loborVO.silver= lobor[0].silver;<br />_loborVO.gold= lobor[0].gold;<br />_loborVO.time= lobor[0].time;<br />_loborVO.effic= lobor[0].effic;<br />_loborVO.desc= lobor[0].desc;</p><p>_allArr.push(_loborVO);<br />}<br />WarModel.getInstance().staticLoborDict = _allArr;<br />CONFIG::debug<br />{<br />Logger.debug("解析Labor.xml",false,this);<br />}</p><p>checkOver();<br />}     

這裡為大家介紹一種flex解析zip檔案的方法,這種方法是面對已經加密的檔案的一種方法, 大家可以看看,具體對你有沒有用處,我就不大清楚了!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.