Существует ли спецификация формата для файлов XML из импорта FLA в CS5?
CS5 позволяет сохранить проект FLA в виде набора файлов XML, которые кодируют векторную графику в некотором формате, например:
<Edge cubics="!8809 4331(;8821,4327 8849,4316 8865,4311q8809 4331 8865 4311);" />
Есть ли где-нибудь спецификация формата, объясняющая, что означают эти записи?
2 ответа
Еще нет. Adobe заявила, что намерена выпустить спецификацию, но пока этого не произошло.
К сожалению, я также не думаю, что в настоящее время известно, что означают эти цифры (если вы не разберетесь!). Но я могу сделать обоснованное предположение, что сами числа, вероятно, представлены в виде твипов (что во Flash-языке составляет двадцатые точки пикселя, а не точки, как в типографии), поэтому, если вы разделите их все на двадцать, у вас, вероятно, будет пиксель. смещения, измеренные от верхнего левого угла... чего-то.;) Что может быть достаточно для вас, чтобы расшифровать, что означает эта строка.
Но прямо сейчас лучшее, что мы можем сделать, это интерпретировать данный фрагмент XFL; нет никакого способа полностью знать, как это или не законно изменить это.
Я пока не знаю точного значения, но похоже, что это дополнительная информация для Flash API о форме. Эта информация не нужна, и вы можете удалить эти строки и по-прежнему загружать XFL без проблем. Данные кубики будут добавлены снова, когда вы попытаетесь отредактировать форму снова. Это просто что-то вроде кеша.
Вы можете видеть это здесь:
<Edge fillStyle1="1" strokeStyle="1" edges="!2720 2720|0 2720!0 2720|0 0!0 0/2720 2720"/>
<Edge cubics="!0 2720(;0,2720 0,0 0,0q0 2720 0 0);"/>
<Edge cubics="!2720 2720(;2720,2720 0,2720 0,2720q2720 2720 0 2720);"/>
<Edge cubics="!0 0(;0,0 2720,2720 2720,2720q0 0 2720 2720);"/>
Это треугольник, состоящий из 3 линий и дополнительной информации о кубиках.
Также обратите внимание, что данные ребер излишне многословны. Эту же форму можно описать так:
ChangeStyle:
Move: [2720 2720]
FillStyle1: 1
LineStyle: 1
Line: -2720 0 0 -2720 2720 2720
Это для двух строк, одной горизонтальной и одной вертикальной:
<Edge strokeStyle="1" edges="!2640 3020|2640 5240!1520 1740|4879 1740"/>
<Edge cubics="!1520 1740(;1520,1740 4879,1740 4879,1740q1520 1740 4879 1740);"/>
Данные не меняются с каждым изменением формы, поэтому они должны быть просто внутренним полезным материалом. Я рекомендую удалить эти линии, если вы хотите построить / изменить данные формы с помощью какого-либо внешнего инструмента (как я хочу сделать).
Феномас прав, что числа в двойках, поэтому, если вам нужны значения в пикселях, вы должны разделить их на 20.