簡體   English   中英

XFL邊緣定義中非數值的含義是什么?

[英]What's the meaning of the non numerical values in the XFL's edge definition?

XFL是新的無壓縮ADOBE FLASH(CS5)源文件,它由XML定義組成,其中大部分都是清晰但不幸的是,重要的是奇怪的。

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

!(x,y) moveTo

/(x,y)+ lineTo

|(x,y)+ lineTo

[(x1 y1 ex ey)+ curveTo(quadratic)

](x1 y1 ex ey)+ curveTo(二次)

((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? xy)+ curveTo(立方開始)

)(nBCPx nBCPy)? ; curveTo(立方結束)

Sn選擇(n =位掩碼,1:fillStyle0,2:fillStyle1,4:筆畫)

#aaaaaa.bb是帶符號的固定點32位數

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

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

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

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM