package { import flash.display.Loader; import flash.display.MovieClip; import flash.display.Sprite; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileReference; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; import flash.utils.ByteArray; /** * 读取添加了Object共享代码的文件 * @author pw * */ public class ReadQinMeiRen extends Sprite { private var loader:Loader; private var fr:FileReference; private var mc:MovieClip; public function ReadQinMeiRen() { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler); var context:LoaderContext = new LoaderContext(); context.applicationDomain = ApplicationDomain.currentDomain; loader.load(new URLRequest("SwfReaderRS.swf"), context); stage.scaleMode = StageScaleMode.NO_SCALE; } private function loaderCompleteHandler(evt:Event):void{ loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loaderCompleteHandler); var cls:Class = ApplicationDomain.currentDomain.getDefinition("swf.SwfReader") as Class; mc = new cls; this.addChild(mc); mc["btnOpen"].addEventListener(MouseEvent.CLICK, btnOpenHandler); mc["btnSave"].addEventListener(MouseEvent.CLICK, btnSaveHandler); } private function btnOpenHandler(evt:MouseEvent):void{ fr = new FileReference(); fr.addEventListener(Event.SELECT, fileSelectedHandler); fr.browse(); } private function fileSelectedHandler(evt:Event):void{ mc["txtFile"].text = fr.name; fr.removeEventListener(Event.SELECT, fileSelectedHandler); fr.addEventListener(Event.COMPLETE, fileCompleteHandler); fr.load(); } private function fileCompleteHandler(evt:Event):void{ // loader = new Loader(); // var context:LoaderContext = new LoaderContext(); // context.applicationDomain = ApplicationDomain.currentDomain; // loader.loadBytes(fr.data, context); // this.addChild(loader); } private function btnSaveHandler(evt:MouseEvent):void{ // fr.save(Object[int(mc["txtIndex"].text)]); fr.save(jieMiQinMeiRenResWenJian(fr.data)); } public function jieMiQinMeiRenResWenJian(_arg1:ByteArray):ByteArray{ var _local5:int; var _local6:int; _arg1.position = 0; var u:ByteArray = new ByteArray(); u.writeUTFBytes("4fsklf489r0speffasdkjff04yr#^$()Ihshefks}{klnskf;;'opr89t4ft&*%^&baendrfdhf8nry4w87&$^&$by4rnyoswygsdur$ECq3rb7q3r"); var _local2:int = u.length; var _local3:int; var _local4:int; var m:int = 4096; if (_arg1.length > (m * 2)){ _local5 = 0; u.position = 0; while (_local5 < m) { if ((u.position + 4) >= _local2){ u.position = 0; }; _local4 = u.readInt(); _arg1.position = _local5; _local3 = _arg1.readInt(); _arg1.position = _local5; _local3 = (_local3 ^ _local4); _arg1.writeInt(_local3); _local5 = (_local5 + 4); }; _local5 = (_arg1.length - m); u.position = 0; _local6 = (_local5 + m); while (_local5 < _local6) { if ((u.position + 4) >= _local2){ u.position = 0; }; _local4 = u.readInt(); _arg1.position = _local5; _local3 = _arg1.readInt(); _arg1.position = _local5; _local3 = (_local3 ^ _local4); _arg1.writeInt(_local3); _local5 = (_local5 + 4); }; _arg1.position = 0; } else { _arg1.clear(); }; u.clear(); return _arg1; } } }