Actionscript 3 如何解码Base64(未压缩)TMX数据元素内容?

Actionscript 3 如何解码Base64(未压缩)TMX数据元素内容?,actionscript-3,encoding,base64,tiled,tmx,Actionscript 3,Encoding,Base64,Tiled,Tmx,我一直在尝试用AS3解码TMX文件中数据元素的Base64内容。我正在使用mx.utils.base64解码器对内容进行解码 这是我的1x1层数据,没有编码(我不确定编码的数据是否为XML格式): 当我尝试解码数据时,返回值为空。我试图用在线Base64解码器解码数据,但也显示了一个空值。Base64编码的数据是二进制的,其中每8个字节是一个32位无符号小尾端全局磁贴ID,在您的案例1中。因此,解码数据不能直接表示为字符串 在您的案例中,数据的字节值为: 1 0 0 0 由于1的ASCII值是

我一直在尝试用AS3解码TMX文件中数据元素的Base64内容。我正在使用
mx.utils.base64解码器
对内容进行解码

这是我的1x1层数据,没有编码(我不确定编码的数据是否为XML格式):


当我尝试解码数据时,返回值为空。我试图用在线Base64解码器解码数据,但也显示了一个空值。

Base64编码的数据是二进制的,其中每8个字节是一个32位无符号小尾端全局磁贴ID,在您的案例1中。因此,解码数据不能直接表示为字符串

在您的案例中,数据的字节值为:

1 0 0 0
由于1的ASCII值是一个控制字符,表示SOH(标题的开始),而0通常用于标记字符串的结尾,因此当您尝试打印此值时,不会显示任何内容。您应该将这些字节组合为32位无符号全局磁贴id,如下所示:

unsigned global_tile_id = data[tile_index] |
                          data[tile_index + 1] << 8 |
                          data[tile_index + 2] << 16 |
                          data[tile_index + 3] << 24;
unsigned global\u tile\u id=data[tile\u index]|
数据[平铺索引+1]
1 0 0 0
unsigned global_tile_id = data[tile_index] |
                          data[tile_index + 1] << 8 |
                          data[tile_index + 2] << 16 |
                          data[tile_index + 3] << 24;