如何解决Flex对象持久化问题
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"如何解决Flex对象持久化问题",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何解决Flex对象持久化问题"这篇文章吧。关于Fl
千家信息网最后更新 2026年11月02日如何解决Flex对象持久化问题
这篇文章主要为大家展示了"如何解决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对象持久化问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
对象
服务器
服务
内容
问题
篇文章
过程
例子
拷贝
学习
帮助
也就是
也就是说
只是
序列
数据
数据库
文件
方法
易懂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
金融科技还是互联网
河南真二互联网科技有限公司
金诺互联网科技
互联网科技论文
长亮科技 互联网金融
互联网科技咨询
互联网科技类展会
蓝色互联网科技
随着互联网科技发展
互联网科技与管理
宝灵互联网科技有限公司
未来五年的互联网科技
畅思互联网科技
河南住房之家互联网科技
互联网科技的全部知识
工业互联网展湾科技股份有限公司
广州富喜互联网络科技
普陀区互联网教育科技管理办法
互联网金融金融科技
高科技互联网
科技赋能下的互联网金融
以房互联网科技
厦门比较好的科技互联网公司
注册互联网科技公司经营范围大全
沐思想互联网科技有限公司
广州千川互联网科技有限公司
厦门江牛科技互联网
互联网科技手机排行榜
青岛互联网科技园