Что означает нечисловые значения в определении ребер XFL? - PullRequest
12 голосов
/ 02 ноября 2010

XFL - это новый несжатый исходный файл ADOBE FLASH (CS5), он состоит из определений XML, большинство из них ясны, но, к сожалению, важные являются странными.

Глядя на различные существующие источники, я вижу определения EDGE формы, такие как:

<Edge strokeStyle="1" edges="!0 0S4|180 0"/>
<Edge strokeStyle="1" edges="!2720 2720S6|0 2720!0 2720|0 0!0 0/2720 2720"/>
<Edge fillStyle1="1" edges="!3532 1539.5S2[#BD9.4D #577.3C 2952.5 1756.5!2952.5 1756.5[#AF6.DA #4C6.1D 3584 1119!3584 1119|3532 1539.5"/> 

Проводя некоторые тесты, я могу сказать, что:

! == move to position
| == draw line from the position to the new position
/ == probably same like |
[ == draw curve
( == probably same like [

Но что означают значения типа S4 или # BD9.4D ? Мое еще не доказанное предположение состоит в том, что значения # могут быть как-то закодированы очень маленькими числами. Я понятия не имею, что может быть S4 .

Ответы [ 2 ]

12 голосов
/ 02 ноября 2010

!(x,y) moveTo

/(x,y)+ lineTo

|(x,y)+ lineTo

[(x1 y1 ex ey)+ curveTo (квадратичный)

](x1 y1 ex ey)+ curveTo (квадратичный)

((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? x y)+ curveTo (кубический старт)

)(nBCPx nBCPy)? ; CurveTo (кубический конец)

Sn выбор (n = битовая маска, 1: fillStyle0, 2: fillStyle1, 4: обводка)

#aaaaaa.bb - 32-разрядное число с фиксированной точкой со знаком

0 голосов
/ 02 ноября 2010

Хм ... Я ошибся с предположением о # значениях!

Я декомпилировал полученную форму и могу сказать, что, например, значение # BD9.4D должно быть глупой шестнадцатеричной кодировкой числа 3033.77 . Я хотел бы знать, почему Adobe использует нечто подобное в коде, который должен быть удобочитаемым для человека?

EDIT: вышеупомянутое неверно, правильный результат для # BD9.4D 3033.30078125

>> (to integer! #{000BD94D}) / 256
== 3033.30078125

Также обратите внимание, что числа типа # 19F.2 являются двоичными # {00019F20}

В соответствии с типом значений S4 они могут быть просто дополнительной информацией для редактора FLASH, потому что когда я удаляю их вручную, я могу загрузить источник, и форма будет такой же.

...