В зависимости от того, можете ли вы изменить источник SWF, вы можете, скажем, щелкнуть по кнопке, создать объект BitmapData из содержимого рабочей области и затем кодировать эти данные в формат изображения. Затем вы будете использовать AIR, чтобы сохранить его на рабочем столе, или на стороне сервера, чтобы сохранить его на сервере, опять же, в зависимости от ваших требований. Я могу уточнить, если это направление звучит разумно.
Ответ на комментарий:
Да, вы правы, вы можете легко сделать это, загружая и внешний SWF-файл.
Вот примерный план того, что вам нужно сделать:
Загрузка внешнего SWF так же проста:
var loader:Loader = new Loader();
var urlRequest:URLRequest = new URLRequest("url-to-external.swf");
loader.load(urlRequest);
Затем скопируйте внешний SWF-контент в объект BitmapData (возможно, при каком-либо событии, например, при нажатии кнопки):
var bitmapData:BitmapData = new BitmapData(loader.width, loader.height);
bitmapData.draw(loader);
Однако может потребоваться дополнительная работа в зависимости от того, как выглядит исходный SWF-файл. Вам может особенно понадобиться принять во внимание (x, y) координаты содержимого в загруженном SWF, поскольку они могут создавать смещение того, что рисуется в объекте BitmapData.
Затем вы можете использовать объект BitmapData для создания файла изображения, например PNG, с использованием класса PNGEncoder из ядра AS3 lib .