Просмотр полной версии : Векторная графика -> ActionScript
Есть ли программа/скрипт/возможность конвертировать созданую в Adobe Flash редакторе векторную графику в ActionScript 2/3 код с использованием Drawing-API?
к примеру из нарисованной на stage окружности получается:
...
graphics.lineStyle(5);
graphics.drawCircle(0,0,100);
...
сталкивался с такой проблемой но давно, поэтому не помню где взял данный скрипт (jsfl):
var arrayContours = fl.getDocumentDOM().selection[0].contours;
var numContours = arrayContours.length;
var strTrace = "";
strTrace += "[\n";
while (numContours --) {
var objContour = arrayContours[numContours];
var objHalfEdge = objContour.getHalfEdge();
var numStartID = objHalfEdge.id;
var numID = 0;
if (objContour.interior) {
continue;
}
strTrace += "[\n";
while (numID != numStartID) {
var edge = objHalfEdge.getEdge();
var vertex = objHalfEdge.getVertex();
var numAnchorX = vertex.x;
var numAnchorY = vertex.y;
var numControlX = edge.getControl(1).x;
var numControlY = edge.getControl(1).y;
strTrace += "[" + numControlX + ", " + numControlY + ", " + numAnchorX + ", " + numAnchorY + "],\n";
// [numControlX, numControlY, numAnchorX, numAnchorY]
objHalfEdge = objHalfEdge.getNext();
numID = objHalfEdge.id;
}
strTrace += "],\n";
}
strTrace += "]";
strTrace = strTrace.split("],\n]").join("]\n]");
strTrace = strTrace.split("],\n]").join("]\n]");
fl.trace(strTrace);
он выводит координаты всех опорных точек любого shape-а, надеюсь не надо описывать как пользоваться скриптом? думаю fl.getDocumentDOM().selection[0] красноречиво говорит об этом...
еще раз упоминаю, скрипт писал не я, но источник просто не помню...
спасибо за скорый ответ, но это даже не половина решения.
то, что скрипт выдает координаты shape-ов в форме:
[numControlX, numControlY, numAnchorX, numAnchorY]
... конечно дает возможность воспроизвести контур с помощью curveTo(), только вот толку с этого мало и лишь усложняет задачу.
(надо бы почитать про формат swf...)
Если для АС2, то можно Flasm/SWFMill попробовать, они оба умели сохранять SWF в виде XML и вроде помнится шейпы по точкам тоже...
опробовал swfmill - это уже есть та самая половина решения :) остается "всего-лишь" xslt написать. К тому же прочел SWF File Format Specification (занятное чтиво, между прочим) и окончательно пришел к выводу, что с drawCircle из вопроса выше я несколько перегнул: все шейпы описываются через path состоящем из straight и curved edges.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.