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"/> 

我可以说进行一些测试:

! == 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) 搬去

/(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 = bitmask,1:fillstyle0,2:fillstyle1,4:stroke)

#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归因
不隶属于 StackOverflow
scroll top