0

我正在将堆栈文件导出到 JSON 以在 VCS 系统中使用,并且我发现导出/导入渐变的一些奇怪结果。字典中关于属性的内容如下:

fillGradient["from"] - 指定渐变起点的坐标

fillGradient["to"] - 指定渐变终点的坐标

fillGradient["via"] - 指定渐变中间点的坐标(影响渐变的缩放和剪切)

如您所见,未指定坐标系。从一些测试来看,坐标似乎是相对于卡片的,但这对我来说没有意义,因为每一步都会改变值。是否有人对这些属性有任何进一步的文档和/或属性不遵循标记点约定的原因,该约定相对于显然可以这样做的对象点。

4

3 回答 3

3

点位置与您找到的卡片相关。您可能希望查看此堆栈以供参考:http ://www.tactilemedia.com/site_files/downloads/gradient_explorer.rev

于 2013-03-09T08:40:30.813 回答
2

实际上,这些渐变属性是相对于卡片的左上角的。这就是我能够将 Adob​​e Ilustrator 版本 7 中的渐变导入 LiveCode 的方式。

您可以检查此堆栈中的代码:

http://andregarzia.on-rev.com/alejandro/stacks/Eps_Import_V05C.zip

于 2013-03-09T07:54:52.903 回答
2

前段时间,当我也对奇怪的坐标系感到恼火时,我在我的图形中添加了以下行为:

setProp relFillGradient[pKind] pPoint
   put round(item 1 of pPoint*the width of me + item 1 of the topLeft of me) into tX
   put round(item 2 of pPoint*the height of me + item 2 of the topLeft of me) into tY
   set the fillGradient[pKind] of me to tX,tY
end relFillGradient

getProp relFillGradient[pKind]
   put the fillGradient[pKind] of me into tPoint
   put (item 1 of tPoint - item 1 of the topleft of me)/the width of me into tRelX
   put (item 2 of tPoint - item 2 of the topleft of me)/the height of me into tRelY
   return (tRelX,tRelY)
end relFillGradient

然后设置 fillGradient 你可以这样做:

set the relFillGradient["from"] of graphic "myGraphic" to 0.1,0.3

其中相对点为左上角的 0,0 和右下角的 1,1。

注意:由于您需要将值设置为四舍五入的值,您可能无法从 getProp 获得完全相同的值。

如果您不想要百分比值(就像我所做的那样),它会变得更加简单,因为您可以删除乘法,并且您可以获得不必四舍五入的好处。

于 2013-03-19T13:31:12.383 回答