Qual è il significato dei valori non numerici nella definizione dei bordi del XFL?
Domanda
XFL è il nuovo Adobe Flash (CS5) file sorgente non compresso, è costituito dalle definizioni XML, la maggior parte di loro sono chiare, ma purtroppo, l'importante sono strani.
Cercando di varie fonti esistenti, posso vedere le definizioni EDGE forma come:
<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"/>
Facendo alcuni test posso dire, che:
! == move to position
| == draw line from the position to the new position
/ == probably same like |
[ == draw curve
( == probably same like [
Ma cosa significa che i valori come S4 o # BD9.4D ? La mia ipotesi ma non dimostrato è che il # i valori potrebbero essere in qualche modo codificate numeri molto piccoli. Non ho idea di quello che potrebbe essere il S4 .
Soluzione
!(x,y)
moveTo
/(x,y)+
lineTo
|(x,y)+
lineTo
[(x1 y1 ex ey)+
curveTo (quadratica)
](x1 y1 ex ey)+
curveTo (quadratica)
((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? x y)+
curveTo (inizio cubo)
)(nBCPx nBCPy)? ;
curveTo (fine cubo)
selezione Sn
(n = bitmask, 1: fillStyle0, 2: fillStyle1, 4: stroke)
#aaaaaa.bb
è un numero di bit firmato punto fisso 32
Altri suggerimenti
Hm ... mi sbagliavo con l'ipotesi di # valori!
Ho decompilato la forma prodotta e posso dire, che ad esempio il valore # BD9.4D deve essere una codifica esadecimale sciocco del numero 3.033,77 . Mi piacerebbe sapere, perché sta usando Adobe qualcosa di simile nel codice che dovrebbe essere leggibile?
EDIT: quanto sopra è sbagliato, il risultato corretto per # BD9.4D è 3033,30,078125 millions
>> (to integer! #{000BD94D}) / 256
== 3033.30078125
Inoltre nota, che i numeri come # 19F.2 sono binari # {00019F20}
Secondo la S4 tipo di valori, potrebbero essere solo alcune informazioni aggiuntive per l'editor FLASH perché quando rimuovo manualmente, posso caricare la sorgente e la forma è lo stesso.