简体   繁体   English

XFL边缘定义中非数值的含义是什么?

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

XFL is the new uncompressed ADOBE FLASH (CS5) source file, it consists from XML definitions, most of them are clear but unfortunately, the important one are strange. XFL是新的无压缩ADOBE FLASH(CS5)源文件,它由XML定义组成,其中大部分都是清晰但不幸的是,重要的是奇怪的。

Looking to various existing sources, I can see shape's EDGE definitions like: 展望各种现有资源,我可以看到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"/> 

Doing some tests I can say, that: 做一些测试我可以说:

! == move to position
| == draw line from the position to the new position
/ == probably same like |
[ == draw curve
( == probably same like [

But what means the values like S4 or #BD9.4D ? 但是什么意味着像S4#BD9.4D这样的价值? My not proved yet guess is, that the # values could be somehow encoded very small numbers. 我还没有证明, 值可以以某种方式编码非常小的数字。 I have no clue what could be the S4 . 我不知道什么是S4

!(x,y) moveTo !(x,y) moveTo

/(x,y)+ lineTo /(x,y)+ lineTo

|(x,y)+ lineTo |(x,y)+ lineTo

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

](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 (cubic start) ((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? xy)+ curveTo(立方开始)

)(nBCPx nBCPy)? ; curveTo (cubic end) curveTo(立方结束)

Sn selection (n=bitmask, 1:fillStyle0, 2:fillStyle1, 4:stroke) Sn选择(n =位掩码,1:fillStyle0,2:fillStyle1,4:笔画)

#aaaaaa.bb is a signed fixed point 32 bit number #aaaaaa.bb是带符号的固定点32位数

Hm... I was wrong with the guess to # values! 嗯......我对#值的猜测错了!

I've decompiled the produced shape and can say, that for example value #BD9.4D must be a silly hexadecimal encoding of number 3033.77 . 我已经反编译了生成的形状,并且可以说,例如值#BD9.4D必须是数字3033.77的傻十六进制编码。 I would like to know, why is Adobe using something like that in code which should be human readable? 我想知道,为什么Adobe在代码中使用类似的东西应该是人类可读的?

EDIT: the above is wrong, the correct result for #BD9.4D is 3033.30078125 编辑:以上是错误的,#BD9.4D的正确结果是3033.30078125

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

Also note, that numbers like #19F.2 are binary #{00019F20} 还要注意,像#19F.2这样的数字是二进制#{00019F20}

According the S4 type of values, they could be just some additional info for the FLASH editor because when I manually remove them, I can load the source and the shape is same. 根据S4类型的值,它们可能只是FLASH编辑器的一些附加信息,因为当我手动删除它们时,我可以加载源并且形状相同。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM