ActionScript Viewer имел эту функцию начиная с версии 3.1 и выше (выпущен в 2002 году).Инструмент не является бесплатным.
Они занимаются анализом векторной графики, хранящейся в формате SWF.
Цитата из их класса рисунка (написано Питером Джоэлом):
The data array is a special format, which can be obtained from graphics in a swf, using
It is structured as a list of commands, which correspond to the movieClip methods moveTo,
lineTo etc. Each command is a two-element array. The first element is a string, indicating the
type of command and the second element is another array, containing arguments. The following
commands are supported:
['M',[x,y]] - moveTo(x,y)
['L',[x,y]] - lineTo(x,y)
['C',[cx,cy,ax,ay]] - moveTo(cx,cy,ax,ay)
['S',[th,col,alph]] - lineStyle(th,col,alph)
['F',[col,alph]] - beginFill(col,alph)
['EF'] - endFill()
['GF',[a,b,c,d,e,f]] - beginGradientFill(a,b,c,d,e,f)
Вывод может выглядеть следующим образом (пример вывода из ASV5 здесь):
//Created by Action Script Viewer - http://www.buraks.com/asv
//ASVDrawing Data format specification by Peter Hall (http://www.peterjoel.com)
//See ASV help file for more information.
//bounding rectangle (95,69) (427,327)
var data=new Array(['S',[1,0xFF0000,100]],['M',[426.5,132.5]],['L',[426.5,326.5]],['L',[358.5,326.5]]
,['L',[358.5,246.5]],['L',[249.5,246.5]],['L',[249.5,305.5]],['L',[157.5,305.5]],['L',[157.5,246.5]],['L',[116.5,246.5]]
,['L',[116.5,177.5]],['L',[95.5,177.5]],['L',[95.5,69.5]],['L',[414.5,69.5]],['L',[414.5,132.5]],['L',[426.5,132.5]]
,['M',[414.5,132.5]],['L',[414.5,177.5]],['L',[358.5,177.5]],['L',[358.5,246.5]],['M',[157.5,246.5]],['L',[157.5,177.5]]
,['L',[116.5,177.5]],['M',[249.5,246.5]],['L',[249.5,177.5]],['L',[157.5,177.5]],['M',[358.5,177.5]],['L',[249.5,177.5]]
);
Или
//Created by Action Script Viewer - http://www.buraks.com/asv
//bounding rectangle (95,69) (427,327)
lineStyle(1,0xFF0000,100);
moveTo(426.5,132.5);
lineTo(426.5,326.5);
lineTo(358.5,326.5);
lineTo(358.5,246.5);
lineTo(116.5,246.5);
moveTo(414.5,132.5);
// ......
ASV - хороший инструмент, на мой взгляд, хотя он не обновляется регулярно.Я помню времена, когда это был самый надежный декомпилятор на рынке.:)
Если вы собираетесь реализовать что-то подобное самостоятельно, вы можете найти это прекрасное объяснение формата файла SWF полезное.