我在使用 FileReference.save() 时遇到了内存问题。我的 Flash 应用程序会实时生成大量数据,需要将这些数据保存到本地文件中。据我了解,Flash 10(相对于 AIR)不支持流式传输到文件。但是,更糟糕的是 FileReference.save() 在保存之前复制了所有数据。我一直在寻找这种双倍内存使用的解决方法,并考虑了以下方法:
如果我将 ByteArray 的自定义子类作为参数传递给 FileReference.save() 会怎样,这个 ByteArray 子类将覆盖所有 read*() 方法。重写的 read*() 方法将等待我的应用程序生成一段数据,返回这段数据并立即将其从内存中删除。我知道会生成多少数据,所以我也可以覆盖 length/bytesAvailable 方法。
这有没有可能?你能给我一些提示吗?我创建了一个 ByteArray 的子类,为它注册了一个别名,将此子类的一个实例传递给 FileReference.save(),但不知何故 FileReference.save() 似乎把它当作一个 ByteArray 实例来对待,而不是调用我的任何重写方法...
非常感谢您的帮助!