0

精简版:

我看到有一个名为 supplyFile() 的炼金术方法,但第二个 arg 是一个 ByteArray ......这到底是为了什么?!?!

更长的版本:

我想做以下事情:

  1. 打开一个文件并将其分配给炼金术 C 端的全局变量。

  2. 在 C 端读入(并处理)一大块字节

  3. 将它们发送到 Actionscript 进行显示

  4. 转到第 2 步,直到 EOF 或来自 Actionscript 的通知

  5. 关闭文件

我现在可以通过打开文件并将块读取到 Actionscript 端的 ByteArray 中然后将其传递给 C 进行处理并返回来执行此操作 - 但这需要执行 AS3_ByteArray_writeBytes()/AS3_ByteArray_readBytes 来调用一些不必要的开销() 在 C 端,以便操作 char * 中的数据。

有什么方法可以在 C 端简单地 fopen() 一个文件并读取一些字节?

假设我们正在讨论磁盘上的一个非常大的文件(> 4GB)。

4

1 回答 1

1

文档

supplyFile(path:String, data:ByteArray):此方法允许您为 C 代码提供位于指定路径的文件。如果您的 C 代码需要位于特定位置的配置文件,由于安全限制,运行时无法访问该配置文件,这将非常有用。

换句话说,supplyFile让您创建一个“虚拟文件”,可以从 C 中使用fopen.

supplyFile使用表示虚拟文件路径的字符串(可以是您想要的任何内容)和作为该虚拟文件内容的 ByteArray 进行调用。然后,在C端你fopen用虚拟文件路径调用和使用fread和朋友一样,就像一个普通的文件。

于 2012-07-10T15:09:28.797 回答