[英]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.