将MovieClip转换为ByteArray

时间:2011-05-25 07:38:19

标签: flash actionscript-3

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

  1. 转换为Bitmapdata
  2. 在Bitmapdata上使用JPGEncoder和PNGEncoder
  3. 然后分配给字节数组变量。
  4. 所以在这种情况下,在JPG和PNG的情况下使用不同的字节数组进行保存并且它起作用。

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

    AS3: Export a MovieClip or Canvas to swf

    var buffer:ByteArray = new ByteArray();
    buffer.writeObject(MOVIE_CLIP_HERE);
    buffer.position = 0;
    buffer.writeBytes(...);
    

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

    我已经找到了php部分。提前致谢。

1 个答案:

答案 0 :(得分:5)

您不使用ByteArray.writeObject()并解析MovieClip ..

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

这是一个简单的例子:

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);

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