91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決Flex對象持久化問題

發布時間:2021-12-06 11:04:40 來源:億速云 閱讀:214 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“如何解決Flex對象持久化問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何解決Flex對象持久化問題”這篇文章吧。

關于Flex對象持久化

關于Flex對象序列化和持久化的問題,很多人認為對象不能拷貝到服務器,其實淺度的拷貝是可以做到的。

我們來看這樣一個例子:

viewplaincopytoclipboardprint?  privatefunctiontest():void{  varcanvas:Canvas=newCanvas();  canvas.width=100;  canvas.height=100;  //保存到ByteArray  varb:ByteArray=newByteArray();  b.writeObject(canvas);   //取出對象  b.position=0;  varo:Object=b.readObject();  varc:Canvas=objectToInstance(o,Canvas)asCanvas;  trace(c.width);  trace(c.height);  this.addChild(c);  }

◆該例子省略了保存到服務器,和從服務器中取出的過程,只是簡單保存了Flex對象,然后就立即拿出ByteArray中的對象。因為中間的ByteArray是不變的(也就是說到服務器端類型變為byte[],其中的內容也不會改變),故中間過程可以忽略。

***的結果為100和100,說明拿出的Flex對象的寬和高都保持住了。

那么在中間的過程加入服務器操作,道理也應如此:

viewplaincopytoclipboardprint?  privatefunctiontest():void{  varcanvas:Canvas=newCanvas();  canvas.width=100;  canvas.height=100;  //保存到ByteArray  varb:ByteArray=newByteArray();  b.writeObject(canvas);  //保存到服務器  remoteObject.Save(b);  }

然后在服務器端:

viewplaincopytoclipboardprint?  publicvoidSave(ByteArrayba)  {  //可以保存到文件  FileStreamfs=newFileStream(Path,FileMode.Createm,FileAccess.Write);  fs.Write(ba.GetBuffer(),0,ba.GetBuffer().Length);  fs.Close();  //=====  //或者保存到數據庫  newFlexObjectDAO().Save(ba.GetBuffer);  }

◆這樣,我們可以隨時讀取這個Flex對象,并處理,服務器端的讀取程序我就不寫了,只寫Flex部分:

viewplaincopytoclipboardprint?  privatefunctiontest():void{  //取出對象  remoteObject.Load();  }   privatefunctionremoteObjectResult(event:ResultEvent):void{  varb:ByteArray=eent.resultasByteArray;  b.position=0;  varo:Object=b.readObject();  varc:Canvas=objectToInstance(o,Canvas)asCanvas;  trace(c.width);  trace(c.height);  this.addChild(c);  }

同理,也可以取出100和100。

objectToInstance方法的內容:

viewplaincopytoclipboardprint?  publicstaticfunctionobjectToInstance(object:Object,clazz:Class):*  {  varbytes:ByteArray=newByteArray();  bytes.objectEncoding=ObjectEncoding.AMF0;  varobjBytes:ByteArray=newByteArray();  objBytes.objectEncoding=ObjectEncoding.AMF0;  objBytes.writeObject(object);  vartypeInfo:XML=describeType(clazz);  varfullyQualifiedName:String=typeInfo.@name.toString().replace(/::/,".");  registerClassAlias(fullyQualifiedName,clazz);  varlen:int=fullyQualifiedName.length;  bytes.writeByte(0x10);//0x10isAMF0for"typedobject(classinstance)"  bytes.writeUTF(fullyQualifiedName);  bytes.writeBytes(objBytes,1);  bytes.position=0;  varresult:*=bytes.readObject();  returnresult;   }

以上是“如何解決Flex對象持久化問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新建县| 蓬安县| 东乌珠穆沁旗| 宿州市| 荥经县| 桃源县| 巴塘县| 福清市| 北宁市| 长兴县| 鲁山县| 肇东市| 台东市| 绥江县| 崇文区| 北京市| 吉林市| 大渡口区| 黄浦区| 阳朔县| 稷山县| 临湘市| 澜沧| 彭水| 陈巴尔虎旗| 大余县| 郸城县| 崇信县| 盐池县| 洛扎县| 丹巴县| 大英县| 兰溪市| 辽中县| 墨脱县| 昆明市| 当阳市| 博爱县| 伊春市| 成安县| 正安县|