2010-11-02 14 views
12

XFL es el nuevo archivo fuente sin comprimir ADOBE FLASH (CS5), consta de definiciones XML, la mayoría de ellas son claras pero, desafortunadamente, las más importantes son extrañas.¿Cuál es el significado de los valores no numéricos en la definición de borde de XFL?

Mirando a diversas fuentes existentes, puedo ver las definiciones EDGE de forma, como:

<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"/> 

Haciendo algunas pruebas que puedo decir, que:

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

Pero lo que significa que los valores como la S4 o # BD9.4D? No probé, pero supongo que los valores # podrían codificarse en números muy pequeños. No tengo ni idea de lo que podría ser el S4.

Respuesta

12

!(x,y) moveTo

/(x,y)+ lineTo

|(x,y)+ lineTo

[(x1 y1 ex ey)+ curveTo (cuadrática)

](x1 y1 ex ey)+ curveTo (cuadrática)

((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? x y)+ curveTo (inicio cúbico)

)(nBCPx nBCPy)? ; curveTo (final cúbico)

Sn selección (n = máscara de bits, 1: fillStyle0, 2: fillStyle1, 4: accidente cerebrovascular)

#aaaaaa.bb es un punto número 32 de bits fija firmado

+0

Gracias, ¿te preguntas cómo lo sabes? :) – Oldes

+0

por cierto ... ¿no sabes lo que significa también los valores cúbicos? – Oldes

+0

lo sé todo;) los datos cúbicos (así como el indicador de selección) son meramente sugerencias para el IDE (las cúbicas solo pueden aparecer en los atributos cúbicos) –

0

Hm ... ¡Me equivoqué con la conjetura de # valores!

He decompilados la forma producida y puedo decir, que por ejemplo, el valor # BD9.4D debe haber una codificación hexadecimal del número tonto 3.033,77. Me gustaría saber, ¿por qué Adobe está utilizando algo así en el código que debería ser legible para las personas?

EDIT: lo anterior es incorrecta, el resultado correcto para # BD9.4D es 3033,30078125

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

También tenga en cuenta, que los números como # 19F.2 son binarios {#} 00019F20

acuerdo el tipo de valores S4, podrían ser solo información adicional para el editor FLASH porque cuando los elimino manualmente, puedo cargar la fuente y la forma es la misma.

+2

que usa la extraña notación hexadecimal para los valores que no pueden representarse como un número real decimal sin pérdida. –

Cuestiones relacionadas