Flashのムービ−クリッピインスタンスをビットマップ画像としてサーバーに送信
Flashで動作するお絵描きツール的なものをよく見かけますが、描いたものをビットマップデータとしてサーバーに送信するにはどうすればいいか。
今日ちょっと調べたらわかりましたので、メモメモ。
※AS3のみです。
処理の概要は、
というものです。
Flash側
1.使用する2つのライブラリをダウンロードします。
as3corelib:
http://code.google.com/p/as3corelib/
as3crypto:
http://code.google.com/p/as3crypto/
2.作成するswfファイルと同じディレクトリに"com"というディレクトリを作成し、その下にそれぞれ以下のフォルダをコピーします。
as3corelib:
corelib/src/com/adobe
as3crypto:
Crypto/com/hurlant
4.送信アクション用のボタンを設置します。(インスタンス名は、ここでは"myButton"とします)
5.フレームアクションとして、以下のアクションを入力します。
import com.adobe.images.*;
import com.hurlant.util.*;
//ビットマップ化
var bmp:BitmapData = new BitmapData(300,300);
bmp.draw(canvas);
//ビットマップオブジェクトをテキスト化
var str:String = Base64.encodeByteArray(PNGEncoder.encode(bmp));
//テキスト化した文字列をURLエンコード
var escstr:String = escapeMultiByte(str);
//送信ボタンのイベントリスナーとアクションを設定
var myButtonListener:Object = new Object();
myButton.addEventListener(MouseEvent.CLICK,onClick);
function onClick(event:MouseEvent):void{
var request:URLRequest = new URLRequest('http://***/test.php?img='+escstr);
navigateToURL(request);
}