将MovieClip转换为ByteArray

Bob*_*eph 4 flash actionscript-3

我必须将MovieClip转换为ByteArray并使用POST方法将其发送到php.处理php的人说只需要发送ByteArray,并且可以从PHP端转换为JPG和PNG.当我构建了在本地计算机上保存的选项时,使用了以下步骤.

  1. 转换为Bitmapdata
  2. 在Bitmapdata上使用JPGEncoder和PNGEncoder
  3. 然后分配给字节数组变量.

所以在这种情况下,在JPG和PNG的情况下使用不同的字节数组来保存并且它起作用.

我在Stackoverflow本身找到了将movieclip转换为bytearray的代码

AS3:将MovieClip或Canvas导出为swf

var buffer:ByteArray = new ByteArray();
buffer.writeObject(MOVIE_CLIP_HERE);
buffer.position = 0;
buffer.writeBytes(...);
Run Code Online (Sandbox Code Playgroud)

缓冲对象的writeBytes函数的参数应该是什么.假设movieclip的名称是canvas_mc.

我已经想出了php部分.提前致谢.

Mar*_*rty 5

你不使用ByteArray.writeObject()和解析MovieClip..

您需要使用bitmapData.getPixels()返回ByteArray表示位图像素的a .

这是一个简单的例子:

const WIDTH:uint = 100;
const HEIGHT:uint = 100;

var rect:Rectangle = new Rectangle(0,0,WIDTH,HEIGHT);

// create BitmapData
var bmd:BitmapData = new BitmapData(WIDTH,HEIGHT,true,0);
bmd.draw(YOUR_MOVIE_CLIP);

// your byte array
var ba:ByteArray = bmd.getPixels(rect);
trace(ba.length);
Run Code Online (Sandbox Code Playgroud)

基本上你想要做的是使用BitmapData.draw()获取MovieClip图形并将它们存储为ByteArray.