Flash 什么';s XFL'中非数值的含义;s边定义?

Flash 什么';s XFL'中非数值的含义;s边定义?,flash,flash-cs5,xfl,Flash,Flash Cs5,Xfl,XFL是新的未压缩ADOBE FLASH(CS5)源文件,它由XML定义组成,大多数定义都很清楚,但不幸的是,重要的一个很奇怪 查看各种现有源,我可以看到形状的边定义,如: <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

XFL是新的未压缩ADOBE FLASH(CS5)源文件,它由XML定义组成,大多数定义都很清楚,但不幸的是,重要的一个很奇怪

查看各种现有源,我可以看到形状的边定义,如:

<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"/> 
但是像S4#BD9.4D这样的值是什么意思呢?
我尚未证实的猜测是,#值可以以某种方式编码为非常小的数字。我不知道什么可能是S4

嗯。。。我对价值的猜测是错误的

我已经对生成的形状进行了反编译,可以说,例如value#BD9.4D必须是一个愚蠢的十六进制数字编码3033.77。我想知道,为什么Adobe在代码中使用类似的东西,而这些代码应该是人类可读的

编辑: 以上是错误的,#BD9.4D的正确结果是3033.30078125

>> (to integer! #{000BD94D}) / 256
== 3033.30078125
还要注意,像#19F.2这样的数字是二进制的#{00019F20}

根据S4类型的值,它们可能只是FLASH编辑器的一些附加信息,因为当我手动删除它们时,我可以加载源代码,并且形状是相同的。

!(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)曲线(立方端)

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


#aaaaaa.bb
是一个有符号的固定点32位数字

它们使用奇怪的十六进制表示法来表示不能表示为十进制实数且没有lossbtw的值。。难道你不知道什么是立方体的值吗?我什么都知道;)cubics(以及选择标志)只是IDE的提示(cubics只能出现在cubics属性中)…尽管我不确定所有参数的语义是什么。x1、y1、x2、y2可能是控制点,ex、ey是端锚,pBCP/nBCP代表上一个/下一个贝塞尔控制点。其余的不确定。和/lineTo之间有什么区别?我知道这是个老问题,但是你从哪里找到这些信息的,有规范吗?
>> (to integer! #{000BD94D}) / 256
== 3033.30078125