2010-11-02 64 views
12

XFL是新的未壓縮ADOBE FLASH(CS5)源文件,它由XML定義組成,其中大部分都很清晰,但不幸的是,重要的一個很奇怪。XFL邊緣定義中非數值的含義是什麼?

展望現有的各種資源,我可以看到形狀的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

回答

12

!(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

謝謝,只是想知道你是如何知道這一點的? :) – Oldes 2010-11-02 14:28:37

+0

btw ..你不知道什麼意思的立方體價值以及? – Oldes 2010-11-02 14:31:26

+0

我知道一切;)立方體(以及選擇標誌)僅僅是IDE的提示(立方體只能出現在立方體屬性中) – 2010-11-02 14:43:29

0

嗯......我錯了#值的猜測!

我反編譯所產生的形狀,並且可以說,這例如值#BD9.4D必須是數3033.77的傻十六進制編碼。我想知道,爲什麼Adobe在應該是人類可讀的代碼中使用類似的東西?

編輯:以上 是錯誤的,正確的結果爲#BD9.4D是3033.30078125

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

還要注意,象#19F.2數字是二進制#{} 00019F20

根據S4值的類型,它們可能只是FLASH編輯器的一些額外信息,因爲當我手動刪除它們時,我可以加載源並且形狀相同。

+2

它們使用奇怪的十六進制符號表示不能表示爲十進制實數而不丟失的值 – 2010-11-02 12:43:23