ByteArray.clear()不适用于共享的ByteArrays?

时间:2013-08-10 08:38:32

标签: actionscript-3 air bytearray clear worker

当我与工作人员共享ByteArray.clear()时,似乎ByteArray没有做任何事情。以此代码为例:

package 
{
    import flash.display.Sprite;
    import flash.system.Worker;
    import flash.system.WorkerDomain;
    import flash.utils.ByteArray;

    public class Main extends Sprite 
    {
        private var _worker:Worker;

        public function Main():void 
        {
            if (Worker.current.isPrimordial)
            {
                initMain();
            }
            else
            {
                initWorker();
            }
        }

        private function initMain():void 
        {
            _worker = WorkerDomain.current.createWorker(loaderInfo.bytes, true);

            var bytes:ByteArray = new ByteArray();
            bytes.writeUnsignedInt(12836439);
            bytes.shareable = true;
            _worker.setSharedProperty("bytes", bytes);
            bytes.clear();
            trace(bytes.length);
        }

        private function initWorker():void
        {
            //worker stuff would go here
        }

    }

}

这会跟踪4,但它应该是0。如果我注释掉bytes.shareable = true;_worker.setSharedProperty("bytes", bytes);,它会完美运行,但组合似乎会以某种方式禁用clear()方法。

然而,奇怪的是,只有在为AIR编译时才会发生这种情况。在为Flash Player编译时,清除工作正常,此代码跟踪0

有人知道发生了什么事吗?

0 个答案:

没有答案