Actionscript 3 在AS3中存储和检索地图数据的最有效方法?

Actionscript 3 在AS3中存储和检索地图数据的最有效方法?,actionscript-3,map,multidimensional-array,Actionscript 3,Map,Multidimensional Array,问题是,我需要将不同的值存储在2d数组或概念上类似的东西中。这样做的目的是创建一个带有分片的2d地图,数组将保存地图中每个分片的ID。我正在尝试创建一些稍微高效的东西,特别是因为我需要节省一些内存以备以后使用。这与人工智能有关,而且它必须在低端PC上运行,但简单地创建一个阵列似乎是浪费空间,因为我在任何给定的地图上只有大约50个不同的ID 我曾想过创建一个包含8位字符的2d数组就足够了,但ActionScript3不可能做到这一点,因为它没有8位字符的数据类型。我可以用带字符串的向量吗?所以我想

问题是,我需要将不同的值存储在2d数组或概念上类似的东西中。这样做的目的是创建一个带有分片的2d地图,数组将保存地图中每个分片的ID。我正在尝试创建一些稍微高效的东西,特别是因为我需要节省一些内存以备以后使用。这与人工智能有关,而且它必须在低端PC上运行,但简单地创建一个阵列似乎是浪费空间,因为我在任何给定的地图上只有大约50个不同的ID


我曾想过创建一个包含8位字符的2d数组就足够了,但ActionScript3不可能做到这一点,因为它没有8位字符的数据类型。我可以用带字符串的向量吗?所以我想问你,最有效的方法是什么?

可能的方法是使用ByteArray-。一次可以读取和写入一个或多个字节。你甚至可以使用压缩功能来缩小它的尺寸,实际上它可以拉拉链


您应该将映射展平到字节数组中,即映射[i][j]将存储在byteArray[i*nr_columns+j]中。

我的建议:不要预先选择大小。在合理的范围内编写它,然后对其进行分析,以了解瓶颈实际所在。如果是我,我会使用固定大小的向量。直到分析告诉我这还不够快。之前的任何优化都只是猜测。32比特小子说的+1。一个固定大小的向量很可能是你最快的选择。您还可以选择使用ByteArray,这将为您提供更多的控制。ByteArray似乎就是我想要的,只是不确定它是否真的足够快。我会接受你的建议,现在我有一个简单的2d数组,但我会记住bytearray和vectors