CS5 允许您将 FLA 项目保存为一组 XML 文件,这些文件以某种格式对矢量图形进行编码,例如:
<Edge cubics="!8809 4331(;8821,4327 8849,4316 8865,4311q8809 4331 8865 4311);" />
是否有格式规范解释这些条目的含义?
我还不知道确切的含义,但看起来这是关于形状的 Flash API 的附加信息。不需要此信息,您可以删除此行并仍然可以毫无问题地加载 XFL。当您再次尝试编辑形状时,将再次添加三次数据。它就像一个缓存信息。
你可以在这里看到它:
<Edge fillStyle1="1" strokeStyle="1" edges="!2720 2720|0 2720!0 2720|0 0!0 0/2720 2720"/>
<Edge cubics="!0 2720(;0,2720 0,0 0,0q0 2720 0 0);"/>
<Edge cubics="!2720 2720(;2720,2720 0,2720 0,2720q2720 2720 0 2720);"/>
<Edge cubics="!0 0(;0,0 2720,2720 2720,2720q0 0 2720 2720);"/>
这是由 3 条线和相关的附加立方信息组成的三角形。
另请注意,边缘数据不必要地冗长。相同的形状可以描述为:
ChangeStyle:
Move: [2720 2720]
FillStyle1: 1
LineStyle: 1
Line: -2720 0 0 -2720 2720 2720
这个是两行,一横一竖:
<Edge strokeStyle="1" edges="!2640 3020|2640 5240!1520 1740|4879 1740"/>
<Edge cubics="!1520 1740(;1520,1740 4879,1740 4879,1740q1520 1740 4879 1740);"/>
数据不会随着每次形状的变化而变化,所以它必须只是一些内部有用的东西。如果您想使用一些外部工具构建/修改形状数据(正如我想做的那样),我建议删除这些行。
Fenomas 是正确的,数字以缇为单位,所以如果你想要像素值,你必须将它们除以 20。
还没有。Adobe 曾表示他们打算发布规范,但似乎还没有发生。
不幸的是,我也不认为目前知道这些数字是什么意思(除非你弄明白了!)。但我可以做出有根据的猜测,数字本身可能以缇为单位(在 Flash 中是二十分之一像素,而不是排版中的点),所以如果你将它们全部除以 20,你可能会有像素从...的左上角测量的偏移量。;) 这可能足以让您破译该行的含义。
但是现在,我们能做的最好的就是解释给定的 XFL 片段。没有办法完全知道以何种方式改变它是合法的或不合法的。