Поскольку вы используете обычный метод open()
, вы открываете файл в синхронном режиме, что означает, что следующая строка (или, скорее, оператор) в вашем коде не будет выполнена, пока предыдущая не завершится.Это означает, что ваши прослушиватели событий даже не добавляются до тех пор, пока не завершится writeBytes ().
Попробуйте просто изменить порядок строк кода следующим образом:
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(Event.CLOSE, fileClosed);
fileStream.addEventListener(Event.COMPLETE, fileComplete);
fileStream.addEventListener(IOErrorEvent.IO_ERROR, fileError);
fileStream.open(newImage, FileMode.UPDATE);
fileStream.writeBytes(ba);
fileStream.close();
Это будет гарантировать, чтоСлушатели событий были добавлены до того, как метод writeBytes () был выполнен (и завершен), поэтому ваши обработчики событий будут вызваны.
Однако, подумайте, нужен ли вам вообще прослушиватель событий.Прослушиватели событий (и шаблон «Наблюдатель», на котором они построены) - это, как правило, решение необходимости ждать завершения асинхронной операции.Поскольку вы просто используете синхронную запись, вы, вероятно, даже не нуждаетесь в них.