我编写的应用程序可以让人们通过互联网(使用Adobe卷云)绘制在一起。一切都很好,但是当我运行我的应用程序并在朋友连接之前画一些东西时,他没有看到我绘制的东西。所以我正在寻找方法,它可以让我将画布转换为可以通过互联网发送的东西(对象)(我无法发送整个Sprite,也不可能将其图形复制到朋友的应用程序中,它是空的)。AS3/FLEX - 如何将Sprite图形转换为字节
所以让我们弄清楚。主要问题是:如何将Sprite的图形转换为对象,这会让我将它转换回Sprite并复制它的画布。
答: 我用DisplayConverter库从“www.Flextras.com”后,他向国防部转换雪碧对BitmapData,然后ByteArray的和它的作品。我无法在朋友的应用程序上收到BitmapData,但它与ByteArray一起工作。
Sprite - > BitmapData - > ByteArray;
ByteArray - > BitmapData - > Sprite;
//TO SEND
var bitmapdata:BitmapData = DisplayConverter.spriteToBitmapData(palette);
var bytearr:ByteArray = bitmapdata.getPixels(bitmapdata.rect);
//TO RECEIVE
var bmd:BitmapData = new BitmapData(530,430);
bmd.setPixels(bmd.rect, bytearr);
mysprite.graphics.beginBitmapFill(bmd);
mysprite.graphics.drawRect(0,0,530,430);
mysprite.graphics.endFill();
希望这会帮助别人
我以前试过这个库,但它似乎不适用于我的情况。我会再次尝试与你的mod。 BTW即时消息不使用任何服务器,只是Cirrus,P2P。所以也许这就是问题所在,当我将Bitmap发送给我的朋友时,他会在从我完全接收/下载之前尝试转换该Bitmap? – swoorn
我没有与Cirrus亲身经历。但是,如果您在获取所有数据之前尝试处理BitMap,很容易看出这可能会导致问题。 – JeffryHouser