flash - 将 MovieClip 转换为 ByteArray

标签 flash actionscript-3

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

  • 转换为位图数据
  • 在位图数据上使用 JPGEncoder 和 PNGEncoder
  • 然后分配给字节数组变量。

  • 因此,在这种情况下,在 JPG 和 PNG 的情况下使用了不同的字节数组来保存并且它起作用了。

    我在 Stackoverflow 中找到了将影片剪辑转换为 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函数的参数应该是什么。假设影片剪辑的名称是 canvas_mc。

    我已经弄清楚了 php 部分。提前致谢。

    最佳答案

    你不使用 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。

    关于flash - 将 MovieClip 转换为 ByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121063/

    相关文章:

    javascript - jquery隐藏一个包含flash的div而不重置它

    php - 拉维尔 4 : Session Flash Message Not Disappearing on Page Refresh

    javascript - 开始使用 Google Maps for Flash 而不是 Javascript 版本是否合理?

    database - flex 本地数据库 lastInsertId = 0

    actionscript-3 - 这是 Actionscript 3 中 MVC 的正确实现吗?

    performance - 写入多个套接字连接的最快方法

    actionscript-3 - ActionScript - 确定值是否为类常量

    linux - 将 Office 文件转换为 swf (Flash)

    actionscript-3 - ActionScript 3's " move “关键字 : does it exist?

    actionscript-3 - 如何制作 TextField 多行?