Base64Encoder/Base64Decoderを使う
Base64Encoderを使うために調べたメモ。
Base64Encoderを使うにはas3corelibライブラリが必要なので
GoogleCodeからas3corelib-.92.1.zipを落として使ってみます。
as3corelib版
var dec:Base64Decoder = new Base64Decoder()
Error: No class registered for interface 'mx.resources::IResourceManager'. at mx.core::Singleton$/getInstance() at mx.resources::ResourceManager$/getInstance() at mx.utils::Base64Decoder()
Base64Encoderは問題なくいけてそうですが…
インスタンスを生成しただけでエラーとはバグでしょうか、Base64Decoderは変なエラーが出ます。
このcorelibが2008年に上がっているものの様なのでさすがに古いですかね・・・。
別の方法で使えるようにしなければならないので
次はFlexの力を借りる事にしました。
FlexSDK版
Flex 4 SDKを落として framework.swcを参照対象とする。
このframework.swcに使えるBase64Encoder/Base64Decoderがあるので
それを使うと以下正しい動作をしてくれます。
var ba:ByteArray = new ByteArray() ba.writeUTF("かわいいワンちゃん") // Encode var enc:Base64Encoder = new Base64Encoder(); enc.encodeBytes(ba); var encStr:String = enc.flush(); trace("Encode:",encStr); // Decode var dec:Base64Decoder = new Base64Decoder() dec.decode(encStr) var ba2: ByteArray = dec.toByteArray() trace( "Decode:",ba2.readUTF());
Encode: ABvjgYvjgo/jgYTjgYTjg6/jg7PjgaHjgoPjgpM= Decode: かわいいワンちゃん
エンコード・デコードとも上手くいきました!
Flexを触る事は無いですが、こういったときに役立ちます。