Я сделал «захват экрана» перед использованием JPGEncoder, поэтому я думаю, что вы должны быть в состоянии сделать снимок экрана при событии ENTER_FRAME. Это может не работать, так как кодирование JPG не очень быстрое.
Вот так я и поступил бы. Для справки вот код, который делает это (для одного скриншота):
var fileReference:FileReference = new FileReference();
// Capture the BitmapData of the stage for example
var captureMovieClip:DisplayObjectContainer = stage;
var stage_snapshot:BitmapData = new BitmapData(captureMovieClip.width, captureMovieClip.height);
stage_snapshot.draw(captureMovieClip);
// Setup the JPGEncoder, run the algorithm on the BitmapData, and retrieve the ByteArray
var encoded_jpg:JPGEncoder = new JPGEncoder(100);
var jpg_binary:ByteArray = encoded_jpg.encode(stage_snapshot);
// save
fileReference.save(jpg_binary, "screenshot.jpg");
Вероятно, вы можете расширить это для вызова в обработчике событий ENTER_FRAME, а затем сохранить файл под разными именами файлов. Также вместо сцены вы можете использовать другой экранный объект.
Я не знаю, как быстро это будет работать, возможно, вам придется снизить частоту кадров, чтобы ENTER_FRAME не вызывался так часто, но вы потеряете некоторое качество в ваших рендерингах JPG.
Также понижаем качество в строке: new JPGEncoder(100)
от 100 до более низкого значения может помочь с размерами файлов jpegs (но может или не может повлечь за собой больше накладных расходов при сжатии).