【问题标题】:AS3: ByteArray and BitmapDataAS3:字节数组和位图数据
【发布时间】:2009-07-22 22:29:27
【问题描述】:

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

【问题讨论】:

    标签: actionscript-3 copy bytearray bitmapdata


    【解决方案1】:

    您应该使用 BitmapData::getPixelsBitmapData::setPixels ... 将类实例写入 ByteArray,因为这样永远不会完全按预期工作...尝试使用 Sprites ... :) ... 这主要是由于以下事实,默认实现以某种方式仅将对象的属性写入IDataOutputByteArraySocket)...在这个意义上,像素不是BitmapData 的属性...BitmapData 是只是一个 ActionScript 包装器,它向某些内部 Flash 播放器数据结构公开接口...

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

    问候

    back2dos

    【讨论】:

    • 真的很有趣。像往常一样,很棒的答案。谢谢!我将对此进行试验。
    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多