Манипулировать данными файла (массивом байтов)

Я совершенно новичок в ActionScript 3, хотя я кодер ООП.

Я видел с помощью этого фрагмента, что могу легко менять байты один за другим.

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

Когда я загружаю файл после внесения изменений в каждый байт, результаты кажутся идеальными. Но когда я пытаюсь напрямую назначить новый массив байтов (закодированный) члену данных _fileRef, компилятор напоминает мне, что он доступен только для чтения.

Есть ли подходящий способ быстро изменить байтовый массив файла перед его загрузкой?

[РЕДАКТИРОВАТЬ]

Может ли это быть в методе, который я использую для назначения массива байтов? Я напрямую назначаю закодированный массив файлу:

myfile._fileRef.data = DESencodedArray;

person Léon Pelletier    schedule 12.12.2012    source источник


Ответы (1)


Итак, вы изменяете копию загруженного ByteArray? Есть ли причина, по которой вы не работаете с загруженными данными напрямую, т.е. не изменяете ByteArray, предоставленный через свойство data?

В любом случае «заменить» содержимое ByteArray можно с помощью ByteArray::clear() и ByteArray::writeBytes()

data.clear();
data.writeBytes(DESencodedArray);
person ndm    schedule 13.12.2012
comment
О, я все еще присваивал массиву = вместо того, чтобы записывать его. Я пытаюсь «писать» на нем. - person Léon Pelletier; 13.12.2012
comment
Я заметил, что мне всегда нужно применять myArray.position = 0 к массивам байтов, в которые я записал. Прошло 2 часа, прежде чем я понял, что мой загрузчик (plupload) читал массив байтов, который достиг своего конца. - person Léon Pelletier; 13.12.2012