2012-12-12 70 views
0

虽然我是OOP编码器,但对于ActionScript 3我完全不熟悉。操纵文件数据(字节数组)

我已经看过这个片段,我可以轻松地逐个更改字节。

var j:int = myFile._fileRef.data.length; 
while (j--) 
{ 
    myfile._fileRef.data[j] += 128; 
} 

当我对每个字节应用更改后上传文件时,结果看起来很完美。 但是,当我试图直接分配一个新的bytearray(一个编码的)到_fileRef的数据成员时,编译器提醒我它是只读的。

有没有一种合适的方法来快速修改文件的字节数组,然后再上传它?

[编辑]

莫非在我使用分配一个字节数组的方法? 我直接分配一个编码阵列的文件:

myfile._fileRef.data = DESencodedArray; 

回答

1

所以要修改的加载ByteArray的副本?是否有理由不直接处理加载的数据,即修改通过data属性提供的ByteArray

不管怎么说, “替换” 的ByteArray内容可以通过ByteArray::clear()ByteArray::writeBytes()

data.clear(); 
data.writeBytes(DESencodedArray); 
+0

编译器说要做:属性为只读:file._fileRef.data。 –

+0

噢,我还在给数组赋值=而不是写它。我正在'写'它。 –

+0

我注意到我总是需要在我写入的bytearrays上应用myArray.position = 0。 2小时过去了,我意识到我的上传器(plupload)正在读取已达到其结尾的字节阵列。 –