AS2 swfで作成したBitmapDataオブジェクトをAS3 swfに転送する必要があります。私はgskinnerのSWFBridgeを使って、両方のフラッシュムービー間の双方向通信を確立しています。BitmapDataオブジェクトをAS2 swfからSWFBridge経由で親AS3 swfに転送
AS3ムービーは完全にスタンドアロンで動作するAS2 swfをロードし、ユーザーがムービークリップを操作し、最終的に彼が作成したコンポジションからイメージを生成できるようにします。私はこのイメージ(bitmapData)を受け取るためにAS3ムービーを必要とし、AS2はいくつかの素晴らしいイメージ処理を行い、AS2ムービーに新しいイメージを送り返すことはできません。配列にすべてを保存し、
function imageTransfer(bitmapData:BitmapData, title:String):void
{
var bmp:Bitmap = new Bitmap(bitmapData);
this.addChild(bmp);
trace(title); // --> returns the right title
trace(bitmapData); // --> returns null
}
私はcopyPixel32(のようなものを使用してだと思う):
var userCompo_mc:MovieClip = container.createEmptyMovieClip("userCompo_mc",10);
var image:BitmapData = new BitmapData(userCompo_mc._width, userCompo_mc._height);
finalCompo.attachBitmap(image); // Just to make sure the final bitmap is right
image.draw(userCompo_mc, compo.title);
//Send the image to the AS3 movie
sb1.send("imageTransfer",image);
AS3のSWF:だからここ
はコード
AS2のswfファイルですそしてそれをAS3に渡すことはそのトリックを行いますが、それは本当にパフォーマンスの豚です。
また、私はではありません AS2 swfをAS3コードに変換することが許可されていません。
提案がありますか?
ありがとう!
as2のピクセルをループし、単一の配列にuintsを埋め込み、それらを送信できるかどうかを確認する方法はありますか。それがうまくいけば、その配列をVectorにキャストすることができます。をas3に設定し、setVector(http://help.adobe.com/ja_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html?filter_coldfusion=9&filter_flex=3&filter_flashplayer=10&filter_air=1.5#setVector)を使用してビットマップデータを色付けします。 ()) –
私はそれが動作すると思うが、getPixel32()を使ってas2のピクセルをループするには約3〜4秒かかります。時間がかかりすぎると思っています。ユーザーは他のタスクを進めるためにできるだけ早く結果を見なければならないので、何かがより速く必要になります。 –