自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)習(xí)筆記 解析Flex對(duì)象持久化問(wèn)題

開(kāi)發(fā) 后端
本文向大家介紹一下關(guān)于Flex對(duì)象持久化問(wèn)題,關(guān)于Flex對(duì)象序列化和持久化的問(wèn)題,很多人認(rèn)為對(duì)象不能拷貝到服務(wù)器,其實(shí)淺度的拷貝是可以做到的。

在學(xué)習(xí)Flex的過(guò)程中,你可能會(huì)遇到Flex對(duì)象持久化方面的問(wèn)題,這里和大家分享一下,很多人認(rèn)為對(duì)象不能拷貝到服務(wù)器,其實(shí)淺度的拷貝是可以做到的。

關(guān)于Flex對(duì)象持久化

關(guān)于Flex對(duì)象序列化和持久化的問(wèn)題,很多人認(rèn)為對(duì)象不能拷貝到服務(wù)器,其實(shí)淺度的拷貝是可以做到的。

我們來(lái)看這樣一個(gè)例子:
 

  1. viewplaincopytoclipboardprint?  
  2. privatefunctiontest():void{  
  3. varcanvas:Canvas=newCanvas();  
  4. canvas.width=100;  
  5. canvas.height=100;  
  6. //保存到ByteArray  
  7. varb:ByteArray=newByteArray();  
  8. b.writeObject(canvas);  
  9.  
  10. //取出對(duì)象  
  11. b.position=0;  
  12. varo:Object=b.readObject();  
  13. varc:Canvas=objectToInstance(o,Canvas)asCanvas;  
  14. trace(c.width);  
  15. trace(c.height);  
  16. this.addChild(c);  
  17. }  
  18.  

 

◆該例子省略了保存到服務(wù)器,和從服務(wù)器中取出的過(guò)程,只是簡(jiǎn)單保存了Flex對(duì)象,然后就立即拿出ByteArray中的對(duì)象。因?yàn)橹虚g的ByteArray是不變的(也就是說(shuō)到服務(wù)器端類(lèi)型變?yōu)閎yte[],其中的內(nèi)容也不會(huì)改變),故中間過(guò)程可以忽略。

***的結(jié)果為100和100,說(shuō)明拿出的Flex對(duì)象的寬和高都保持住了。

那么在中間的過(guò)程加入服務(wù)器操作,道理也應(yīng)如此:

  1. viewplaincopytoclipboardprint?  
  2. privatefunctiontest():void{  
  3. varcanvas:Canvas=newCanvas();  
  4. canvas.width=100;  
  5. canvas.height=100;  
  6. //保存到ByteArray  
  7. varb:ByteArray=newByteArray();  
  8. b.writeObject(canvas);  
  9. //保存到服務(wù)器  
  10. remoteObject.Save(b);  
  11. }  

然后在服務(wù)器端: 

  1. viewplaincopytoclipboardprint?  
  2. publicvoidSave(ByteArrayba)  
  3. {  
  4. //可以保存到文件  
  5. FileStreamfs=newFileStream(Path,FileMode.Createm,FileAccess.Write);  
  6. fs.Write(ba.GetBuffer(),0,ba.GetBuffer().Length);  
  7. fs.Close();  
  8. //=====  
  9. //或者保存到數(shù)據(jù)庫(kù)  
  10. newFlexObjectDAO().Save(ba.GetBuffer);  
  11. }  
  12.  

  ◆這樣,我們可以隨時(shí)讀取這個(gè)Flex對(duì)象,并處理,服務(wù)器端的讀取程序我就不寫(xiě)了,只寫(xiě)Flex部分: 

  1. viewplaincopytoclipboardprint?  
  2. privatefunctiontest():void{  
  3. //取出對(duì)象  
  4. remoteObject.Load();  
  5. }  
  6.  
  7. privatefunctionremoteObjectResult(event:ResultEvent):void{  
  8. varb:ByteArray=eent.resultasByteArray;  
  9. b.position=0;  
  10. varo:Object=b.readObject();  
  11. varc:Canvas=objectToInstance(o,Canvas)asCanvas;  
  12. trace(c.width);  
  13. trace(c.height);  
  14. this.addChild(c);  
  15. }  
  16.  

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

objectToInstance方法的內(nèi)容:

  1. viewplaincopytoclipboardprint?  
  2. publicstaticfunctionobjectToInstance(object:Object,clazz:Class):*  
  3. {  
  4. varbytes:ByteArray=newByteArray();  
  5. bytes.objectEncoding=ObjectEncoding.AMF0;  
  6. varobjBytes:ByteArray=newByteArray();  
  7. objBytes.objectEncoding=ObjectEncoding.AMF0;  
  8. objBytes.writeObject(object);  
  9. vartypeInfo:XML=describeType(clazz);  
  10. varfullyQualifiedName:String=typeInfo.@name.toString().replace(/::/,".");  
  11. registerClassAlias(fullyQualifiedName,clazz);  
  12. varlen:int=fullyQualifiedName.length;  
  13. bytes.writeByte(0x10);//0x10isAMF0for"typedobject(classinstance)"  
  14. bytes.writeUTF(fullyQualifiedName);  
  15. bytes.writeBytes(objBytes,1);  
  16. bytes.position=0;  
  17. varresult:*=bytes.readObject();  
  18. returnresult;  
  19.  
  20. }  

【編輯推薦】

  1. 實(shí)例解析Flex字體的使用
  2. FlexBuilder4十大新特性閃亮登場(chǎng)
  3. 學(xué)習(xí)總結(jié) 在Flex中如何嵌入Flex字體
  4. 揭開(kāi)Flex正則表達(dá)式的神秘面紗
  5. FlexBuilder開(kāi)發(fā)方法及特點(diǎn)解析 

 

責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2009-09-23 17:00:07

Hibernate持久

2010-08-06 11:04:06

Flex模塊化

2010-06-28 18:44:54

UML對(duì)象圖

2010-07-30 10:58:03

Flex數(shù)據(jù)綁定

2010-07-12 14:32:29

UML對(duì)象關(guān)系

2010-08-09 10:34:05

Flex背景

2023-10-12 13:01:29

Redis數(shù)據(jù)庫(kù)

2010-07-28 14:28:57

Flex國(guó)際化

2010-08-11 09:21:37

2024-03-26 00:03:08

Redis數(shù)據(jù)RDB

2010-08-10 16:41:54

FlexJSP

2010-07-29 15:36:23

Flex安全沙箱

2010-08-04 09:26:27

Flex數(shù)據(jù)

2010-07-27 10:39:25

Flex組件

2010-07-29 13:18:45

Flex右鍵菜單

2009-09-24 15:42:44

Hibernate對(duì)象

2009-09-29 16:11:45

Hibernate實(shí)現(xiàn)

2010-08-12 11:05:33

Flex數(shù)據(jù)綁定

2010-07-27 15:49:28

Flex

2010-08-09 15:19:29

Flex滾動(dòng)條
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)