SharedObject.getLocal("application-name")

  1 package {
  2     import flash.display.Sprite;
  3     import flash.events.MouseEvent;
  4     import flash.events.NetStatusEvent;
  5     import flash.net.SharedObject;
  6     import flash.net.SharedObjectFlushStatus;
  7     import flash.text.TextField;
  8     import flash.text.TextFieldAutoSize;
  9     import flash.text.TextFieldType;
 10     
 11     public class SharedObjectExample extends Sprite {
 12         
 13         private var mySo:SharedObject;
 14         
 15         public function SharedObjectExample() {
 16             buildUI();
 17             saveBtn.addEventListener(MouseEvent.CLICK, saveValue);
 18             clearBtn.addEventListener(MouseEvent.CLICK, clearValue);
 19             //默认路径是根据swf的路径来决定的,路径上不要用中文
 20             //比如swf地址:E:/testSharedObject/test.swf,那么默认路径就是win7系统
 21             //C:/Users/Administrator/AppData/Roaming/Macromedia/Flash Player/#SharedObjects/CZ3BWEGE/localhost/
testSharedObject/test.swf/application-name.sol
22 //路径并不是可以任意指定的,只能在默认的共享路径上选择 23 //上面例子可选路径有: 24 // "/" 25 // "/testSharedObject" 26 // "/testSharedObject/test.swf" 27 //而 "/" 由于与swf路径无关(即使swf移动了位置),所以当作共享数据的路径 28 mySo = SharedObject.getLocal("application-name"); 29 output.appendText("SharedObject loaded...\n"); 30 output.appendText("loaded value: " + mySo.data.savedValue + "\n\n"); 31 } 32 33 private function saveValue(event:MouseEvent):void { 34 output.appendText("saving value...\n"); 35 mySo.data.savedValue = input.text; 36 37 var flushStatus:String = null; 38 try { 39 flushStatus = mySo.flush(10000);//必须分配给此对象的最小磁盘空间(以字节为单位) 40 } catch (error:Error) { 41 output.appendText("Error...Could not write SharedObject to disk\n"); 42 } 43 if (flushStatus != null) { 44 switch (flushStatus) { 45 //用户允许来自此域的对象进行本地信息存储,但所分配的空间量不足以存储该对象 46 case SharedObjectFlushStatus.PENDING: 47 output.appendText("Requesting permission to save object...\n"); 48 mySo.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); 49 break; 50 //共享对象已成功写入本地磁盘上的文件 51 case SharedObjectFlushStatus.FLUSHED: 52 output.appendText("Value flushed to disk.\n"); 53 break; 54 } 55 } 56 output.appendText("\n"); 57 } 58 59 private function clearValue(event:MouseEvent):void { 60 output.appendText("Cleared saved value...Reload SWF and the value should be \"undefined\".\n\n"); 61 delete mySo.data.savedValue; 62 } 63 64 private function onFlushStatus(event:NetStatusEvent):void { 65 output.appendText("User closed permission dialog...\n"); 66 switch (event.info.code) { 67 case "SharedObject.Flush.Success": 68 output.appendText("User granted permission -- value saved.\n"); 69 break; 70 case "SharedObject.Flush.Failed": 71 output.appendText("User denied permission -- value not saved.\n"); 72 break; 73 } 74 output.appendText("\n"); 75 76 mySo.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); 77 } 78 79 // UI elements 80 private var inputLbl:TextField; 81 private var input:TextField; 82 private var output:TextField; 83 private var saveBtn:Sprite; 84 private var clearBtn:Sprite; 85 86 private function buildUI():void { 87 // input label 88 inputLbl = new TextField(); 89 addChild(inputLbl); 90 inputLbl.x = 10; 91 inputLbl.y = 10; 92 inputLbl.text = "Value to save:"; 93 94 // input TextField 95 input = new TextField(); 96 addChild(input); 97 input.x = 80; 98 input.y = 10; 99 input.width = 100; 100 input.height = 20; 101 input.border = true; 102 input.background = true; 103 input.type = TextFieldType.INPUT; 104 105 // output TextField 106 output = new TextField(); 107 addChild(output); 108 output.x = 10; 109 output.y = 35; 110 output.width = 250; 111 output.height = 250; 112 output.multiline = true; 113 output.wordWrap = true; 114 output.border = true; 115 output.background = true; 116 117 // Save button 118 saveBtn = new Sprite(); 119 addChild(saveBtn); 120 saveBtn.x = 190; 121 saveBtn.y = 10; 122 saveBtn.useHandCursor = true; 123 saveBtn.graphics.lineStyle(1); 124 saveBtn.graphics.beginFill(0xcccccc); 125 saveBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5); 126 var saveLbl:TextField = new TextField(); 127 saveBtn.addChild(saveLbl); 128 saveLbl.text = "Save"; 129 saveLbl.selectable = false; 130 131 // Clear button 132 clearBtn = new Sprite(); 133 addChild(clearBtn); 134 clearBtn.x = 230; 135 clearBtn.y = 10; 136 clearBtn.useHandCursor = true; 137 clearBtn.graphics.lineStyle(1); 138 clearBtn.graphics.beginFill(0xcccccc); 139 clearBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5); 140 var clearLbl:TextField = new TextField(); 141 clearBtn.addChild(clearLbl); 142 clearLbl.text = "Clear"; 143 clearLbl.selectable = false; 144 } 145 } 146 }

 

posted @ 2014-04-16 21:10  ddw1997  阅读(1118)  评论(0编辑  收藏  举报