繁体   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