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を触る事は無いですが、こういったときに役立ちます。

 

Filed under AS3, 問題解決メモ · Tagged with

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

You must be logged in to post a comment.