Flex的Base64编码
前段时间碰到关于Flex的Base64编码的问题,今天打算写个小节。 从二进制数据编码和解码 1 2 3 4 5 6 7 8 9 10 11 |
var objObject = {name:"Dynamic Flash", url"http://dynamicflash.com"}ByteArray = new ByteArray()writeObject(obj).encodeByteArray(trace(encoded)ByteArray = Base64.decodeToByteArray(encoded)var obj2Object = decodedreadObject()trace(obj2name + "(" + obj2url ")") 然而 Flex3 本身就已经提供了 base64 编码和解码的工具类。在 mx.util 包里,分别是 Base64Encoder 和 Base64Decoder 。前者将字符串或 ByteArray 编码为 Base64 编码的字符串,后者则用于将 Base64 编码的字符串解码为 ByteArray。
Flex Examples 上有一个?关于如何将图像编码成Base64字符串?的例子,这个例子很好的说明了 Base64Decoder 的用法。 与 com.dynamicflash.util.Base64 相比,Base64Encoder 和 Base64Decoder 的编码和解码并非静态方法,在构造对象后调用 encode() 或者 decode() ,结果会被添加到类内部缓冲区,直到调用 toString() 或者 toByteArray() 将结果返回。所以两者都提供了清除缓冲区以及设置初始化状态的方法 reset() 。 还有一个 mx.graphics.ImageSnapshot 类,用于捕获实现了 flash.display.IBitmapDrawable 的任何 Flash 组件(包括 Flex UIComponent)的快照,这个类也有一个Base64编码的方法,用于将 ImageSnapshot 转换为 Base-64 编码的String。 1 2 3 4 5 6 7 |
import mxgraphics.ImageSnapshot.codec.*; ? var jpgEnc:JPEGEncoder = new JPEGEncoder()var ohSnap:ImageSnapshot; ohSnap = ImageSnapshot.captureImage(img0var strString = ImageSnapshot.encodeImageAsBase64(ohSnap); |
转载:http://www.swordair.com/blog/2010/03/208/
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!