Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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:ByteArray和BitmapData_Actionscript 3_Copy_Bytearray_Bitmapdata - Fatal编程技术网

Actionscript 3 AS3:ByteArray和BitmapData

Actionscript 3 AS3:ByteArray和BitmapData,actionscript-3,copy,bytearray,bitmapdata,Actionscript 3,Copy,Bytearray,Bitmapdata,我在做一个简单的测试。我想将位图数据写入ByteArray。我正试图用writeObject()和readObject()实现这一点。读取对象在理解BitmapData时似乎有问题 var byteArray : ByteArray = new ByteArray(); var _cache : BitmapData = new BitmapData( 640, 480, true, 0x000000 ); var _blank : BitmapData = new BitmapData( 64

我在做一个简单的测试。我想将位图数据写入ByteArray。我正试图用writeObject()和readObject()实现这一点。读取对象在理解BitmapData时似乎有问题

var byteArray : ByteArray = new ByteArray();
var _cache : BitmapData = new BitmapData( 640, 480, true, 0x000000 );
var _blank : BitmapData = new BitmapData( 640, 480, true, 0x000000 );

byteArray.writeObject( _blank );
byteArray.position = 0;
_cache = byteArray.readObject() as BitmapData;
trace( _cache ); // Traces null
有人能帮我澄清一下吗?我无法理解readObject()到底出了什么问题


我知道我可以这样做getPixels()和setPixels(),但我想在这里将对象视为一个对象。

您应该使用
BitmapData::getPixels
BitmapData::setPixels
。。。将类实例写入ByteArray本身永远不会完全按照预期工作。。。尝试使用精灵…:)。。。这主要是由于这样一个事实,默认实现只将对象的属性写入
IDataOutput
ByteArray
Socket
)。。。从这个意义上讲,像素不是位图数据的属性。。。
BitmapData
只是一个ActionScript包装器,它向某些内部flash player数据结构公开了一个接口

您应该编写一个for
BitmapData
,它实现了,这样您就可以控制发生的事情。。。基本上,您只需要读/写尺寸和实际的像素负载。。。也许透明的旗帜。。。记住使用

格里茨


back2dos

真的很有趣。和往常一样,回答得很好。非常感谢。我来试试这个。