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 会是什么。
答案 0 :(得分:12)
!(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)? ;
curveTo(立方结束)
Sn
选择(n =位掩码,1:fillStyle0,2:fillStyle1,4:笔画)
#aaaaaa.bb
是带符号的固定点32位数
答案 1 :(得分:0)
嗯......我对#值的猜测错了!
我已经反编译了生成的形状,可以说,例如值#BD9.4D 必须是数字 3033.77 的傻十六进制编码。我想知道,为什么Adobe在代码中使用类似的东西应该是人类可读的?
编辑: 以上是错误的,#BD9.4D的正确结果是3033.30078125
>> (to integer! #{000BD94D}) / 256
== 3033.30078125
另请注意,#19F.2之类的数字是二进制#{00019F20}
根据 S4 类型的值,它们可能只是FLASH编辑器的一些附加信息,因为当我手动删除它们时,我可以加载源并且形状相同。