将动画序列从Flash导出为JPEG

将动画序列从Flash导出为JPEG,flash,actionscript-3,video,encoding,jpeg,Flash,Actionscript 3,Video,Encoding,Jpeg,我想知道是否有可能记录/捕获swf电影在一段时间内的状态,并将其作为JPG保存到服务器 AS3有一个新的com.adobe.images.JPGEncoder类似乎可以完成这项工作,但是我可以捕获一个序列吗?希望我能把它重新组合成视频或动画 是否有其他方法可以通过编程方式将swf编码为视频?在使用JPGEncoder之前,我已经完成了“屏幕捕获”,因此我认为您应该能够在ENTER_FRAME事件中捕获屏幕。这可能不起作用,因为JPG编码不是很快 这就是我要做的。以下是一些代码,供您参考(对于单个

我想知道是否有可能记录/捕获swf电影在一段时间内的状态,并将其作为JPG保存到服务器

AS3有一个新的com.adobe.images.JPGEncoder类似乎可以完成这项工作,但是我可以捕获一个序列吗?希望我能把它重新组合成视频或动画

是否有其他方法可以通过编程方式将swf编码为视频?

在使用JPGEncoder之前,我已经完成了“屏幕捕获”,因此我认为您应该能够在ENTER_FRAME事件中捕获屏幕。这可能不起作用,因为JPG编码不是很快

这就是我要做的。以下是一些代码,供您参考(对于单个屏幕截图):

您可能可以将其扩展为在ENTER_FRAME事件处理程序中调用,然后将文件保存到不同的文件名。也可以使用不同的显示对象来代替舞台

我不知道它的运行速度有多快,您可能需要降低帧速率,这样就不会太多地调用ENTER_帧,但是您的JPG渲染会失去一些质量

同时降低行中的质量:
newjpgencoder(100)
从100到更低的值可能有助于JPEG的文件大小(但可能会或可能不会导致更大的压缩开销)

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");