·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3中ShareObject类的应用范例

时间:2016-01-24 20:43酷播
[AS3]as3中ShareObject类的应用范例

[AS3]as3中ShareObject类的应用范例

  1. package { 
  2.     import flash.display.Sprite; 
  3.     import flash.events.MouseEvent; 
  4.     //NetConnection、NetStream 或 SharedObject 对象报告其状态时,Flash® Player 将调度 NetStatusEvent 对象。 只有一种类型的状态事件:NetStatusEvent.NET_STATUS。 
  5.     import flash.events.NetStatusEvent; 
  6.     import flash.net.SharedObject; 
  7.     //SharedObjectFlushStatus 类为通过调用 SharedObject.flush() 方法而返回的代码提供了值。 
  8.     import flash.net.SharedObjectFlushStatus; 
  9.     import flash.text.TextField; 
  10.     //TextFieldAutoSize 类是在设置 TextField 类的 autoSize 属性时使用的常数值的枚举。 
  11.     import flash.text.TextFieldAutoSize; 
  12.     import flash.text.TextFieldType; 
  13.     
  14.     public class SharedObjectExample extends Sprite { 
  15.         
  16.         private var mySo:SharedObject; 
  17.         
  18.         public function SharedObjectExample() { 
  19.             buildUI(); 
  20.             saveBtn.addEventListener(MouseEvent.CLICK, saveValue); 
  21.             clearBtn.addEventListener(MouseEvent.CLICK, clearValue); 
  22.             //返回对本地永久共享对象的引用,该对象只可用于当前客户端。 如果尚不存在共享对象,则此方法将创建一个共享对象。 如果传递给 getLocal() 的任何值均无效,或如果调用失败,Flash Player 将引发异常。 
  23.             mySo = SharedObject.getLocal("application-name"); 
  24.             output.appendText("SharedObject loaded...\n"); 
  25.             //赋给对象的 data 属性 (property) 的属性 (attribute) 集合;可以共享和存储这些属性 (attribute)。 每个特性都可以是任何 ActionScript 或 JavaScript 类型的对象(数组、数字、布尔值、字节数组、XML,等等)。 
  26.             output.appendText("loaded value: " + mySo.data.savedValue + "\n\n"); 
  27.         } 
  28.  
  29.          private function saveValue(event:MouseEvent):void { 
  30.             output.appendText("saving value...\n"); 
  31.             mySo.data.savedValue = input.text; 
  32.             
  33.             var flushStatus:String = null
  34.             try { 
  35.                 //将本地永久共享对象立即写入本地文件。 如果不使用此方法,则 Flash Player 会在共享对象会话结束时(也就是说,在 SWF 文件关闭时,在由于不再有对共享对象的任何引用而将其作为垃圾回收时,或者在调用 SharedObject.clear() 或 SharedObject.close() 时),将共享对象写入文件。 
  36.                //参数:minDiskSpace: (default = 0) — 必须分配给此对象的最小磁盘空间(以字节为单位)。 
  37.                 flushStatus = mySo.flush(10000); 
  38.             } catch (error:Error) { 
  39.                 output.appendText("Error...Could not write SharedObject to disk\n"); 
  40.             } 
  41.             if (flushStatus != null) { 
  42.                 switch (flushStatus) { 
  43.                     //指示在可以刷新之前,提示用户增加共享对象的磁盘空间。 
  44.                     case SharedObjectFlushStatus.PENDING: 
  45.                         output.appendText("Requesting permission to save object...\n"); 
  46.                         mySo.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); 
  47.                         break; 
  48.                     //指示成功完成了刷新。 
  49.                     case SharedObjectFlushStatus.FLUSHED: 
  50.                         output.appendText("Value flushed to disk.\n"); 
  51.                         break; 
  52.                 } 
  53.             } 
  54.             output.appendText("\n"); 
  55.         } 
  56.         
  57.         private function clearValue(event:MouseEvent):void { 
  58.             output.appendText("Cleared saved value...Reload SWF and the value should be \"undefined\".\n\n");             
  59.             delete mySo.data.savedValue; 
  60.         } 
  61.         
  62.         private function onFlushStatus(event:NetStatusEvent):void { 
  63.             output.appendText("User closed permission dialog...\n"); 
  64.             //info:一个对象,具有描述对象的状态或错误情况的属性 
  65.             switch (event.info.code) { 
  66.                 case "SharedObject.Flush.Success": 
  67.                     output.appendText("User granted permission -- value saved.\n"); 
  68.                     break; 
  69.                 case "SharedObject.Flush.Failed": 
  70.                     output.appendText("User denied permission -- value not saved.\n"); 
  71.                     break; 
  72.             } 
  73.             output.appendText("\n"); 
  74.  
  75.             mySo.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); 
  76.         } 
  77.         
  78.         // UI elements 
  79.         private var inputLbl:TextField; 
  80.         private var input:TextField; 
  81.         private var output:TextField; 
  82.         private var saveBtn:Sprite; 
  83.         private var clearBtn:Sprite; 
  84.     
  85.         private function buildUI():void { 
  86.             // input label 
  87.             inputLbl = new TextField(); 
  88.             addChild(inputLbl); 
  89.             inputLbl.x = 10
  90.             inputLbl.y = 10
  91.             inputLbl.text = "Value to save:"
  92.             
  93.             // input TextField 
  94.             input = new TextField(); 
  95.             addChild(input); 
  96.             input.x = 80
  97.             input.y = 10
  98.             input.width = 100
  99.             input.height = 20
  100.             input.border = true
  101.             input.background = true
  102.             input.type = TextFieldType.INPUT; 
  103.             
  104.             // output TextField 
  105.             output = new TextField(); 
  106.             addChild(output); 
  107.             output.x = 10
  108.             output.y = 35
  109.             output.width = 250
  110.             output.height = 250
  111.             output.multiline = true
  112.             output.wordWrap = true
  113.             output.border = true
  114.             output.background = true
  115.             
  116.             // Save button 
  117.             saveBtn = new Sprite(); 
  118.             addChild(saveBtn); 
  119.             saveBtn.x = 190
  120.             saveBtn.y = 10
  121.             saveBtn.useHandCursor = true
  122.             saveBtn.graphics.lineStyle(1); 
  123.             saveBtn.graphics.beginFill(0xcccccc); 
  124.             saveBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5); 
  125.             var saveLbl:TextField = new TextField(); 
  126.             saveBtn.addChild(saveLbl); 
  127.             saveLbl.text = "Save"
  128.             saveLbl.selectable = false
  129.             
  130.             // Clear button 
  131.             clearBtn = new Sprite(); 
  132.             addChild(clearBtn); 
  133.             clearBtn.x = 230
  134.             clearBtn.y = 10
  135.             clearBtn.useHandCursor = true
  136.             clearBtn.graphics.lineStyle(1); 
  137.             clearBtn.graphics.beginFill(0xcccccc); 
  138.             clearBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5); 
  139.             var clearLbl:TextField = new TextField(); 
  140.             clearBtn.addChild(clearLbl); 
  141.             clearLbl.text = "Clear"
  142.             clearLbl.selectable = false
  143.         } 
  144.     } 

jinglikeblue

http://blog.csdn.net/jinglikeblue/article/details/9134395

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器