AS3:ByteArray和BitmapData

时间:2009-07-22 22:29:27

标签: actionscript-3 copy bytearray bitmapdata

我正在做一个简单的测试。我想将BitmapData写入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(),但是我想在这里将对象视为一个对象。

1 个答案:

答案 0 :(得分:5)

你应该使用BitmapData::getPixelsBitmapData::setPixels ...将类实例写入ByteArray,因为它永远不会按预期完成...尝试使用Sprites ... :) ...这主要是由于这个事实,默认实现只是以某种方式将对象的属性写入IDataOutputByteArraySocket)...像素不是{{1}的属性在这个意义上...... BitmapData只是一个ActionScript包装器,它将接口暴露给某个内部flash播放器数据结构......

你应该为BitmapData写一个adapter,它实现IExternalizable,这样你就能控制,发生什么......基本上,你只需要读/写尺寸和实际像素有效载荷...也许是透明标志......记得使用registerClassAlias ...

格尔茨

back2dos