Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3,AIR,套接字:如何正确读取对象()?_Actionscript 3_Sockets_Bitmap_Air - Fatal编程技术网

Actionscript 3 AS3,AIR,套接字:如何正确读取对象()?

Actionscript 3 AS3,AIR,套接字:如何正确读取对象()?,actionscript-3,sockets,bitmap,air,Actionscript 3,Sockets,Bitmap,Air,我正在尝试使用Socket类中的writeObject()方法将位图从一个AIR应用程序(服务器)传递到另一个(客户端) clientSocket.writeObject(myBitmap);// (var myBitmap:Bitmap) clientSocket.flush(); 当我尝试在客户端应用程序上获取位图时,出现了我的问题。使用方法readObject(),我获得了一个通用对象,包含位图的所有属性。我无法以任何方式将此对象转换为位图 var receivedObject:* =

我正在尝试使用Socket类中的writeObject()方法将位图从一个AIR应用程序(服务器)传递到另一个(客户端)

clientSocket.writeObject(myBitmap);// (var myBitmap:Bitmap)
clientSocket.flush();
当我尝试在客户端应用程序上获取位图时,出现了我的问题。使用方法readObject(),我获得了一个通用对象,包含位图的所有属性。我无法以任何方式将此对象转换为位图

var receivedObject:* = socket.readObject();
trace(receivedObject);// [Object Object]
trace(receivedObject as Bitmap); // null
请帮帮忙

Adobe没有很好地记录这种过程


非常感谢。

Bitmap
类是一个
显示对象
,通过
ByteArray
功能(使用
writeObject/readObject
方法)进行克隆不适用于
DisplayObjects
(例如,检查这个问题)

对于这种特殊情况,您可以写入/读取
位图数据
对象和
矩形
属性,并使用它还原
位图

    var bd:BitmapData = myBitmap.bitmapData;
    var data:Object = {rect:bd.rect, bytes:bd.getPixels(bd.rect)}
    clientSocket.writeObject(data);

    var data:Object = socket.readObject();
    var bd2:BitmapData = new BitmapData(data.rect.width, data.rect.height);
    bd2.setPixels(bd2.rect, data.bytes);
    addChild(new Bitmap(bd2));