CreateJs - 从左边的距离
Posted
技术标签:
【中文标题】CreateJs - 从左边的距离【英文标题】:CreateJs - distance from left 【发布时间】:2014-07-19 23:03:19 【问题描述】:这是图形:
http://snag.gy/aVFGA.jpg
大矩形是画布元素,小矩形是画布中的图像对象。我想找到左边的真实距离。
值是我在控制台中看到的:
regX: 564.256
regY: 41.4
scaleX: 0.4491319444444445
scaleY: 0.4491319444444445
x: 363.3333333333333
y: 409.77777777777777
所以我看到 x 不是真实的。它以某种方式与 regX 和 scaleX 相关。但我没有找到它是如何关联的。从图像中我认为 x 应该是大约 100 - 150 px。 x 越大 - 越靠右。 但是 regX 越大 - 它使矩形越向左。
因此,如果我只取差值 564.256 - 363.333 = ~200 - 矩形的左角应该在画布中间,因为画布的宽度为 400 像素。但事实并非如此,因此减法无济于事。 那么我如何从左边得到多少像素是真实的?
【问题讨论】:
【参考方案1】:您可以使用localToGlobal
方法来做到这一点(请参阅here)。
这取决于给定属性属于哪个对象。
如果它们属于形状,并且图像/形状内的矩形从 (0,0) 开始:
var point = shape.localToGlobal(0, 0);
// this will calculate the global point of the shape's local point (0,0)
如果他们属于舞台:
var point = stage.localToGlobal(yourRectObject.x, yourRectObject.y);
// point.x should contain the position on the canvas
您应该普遍使用这些方法,因为您的方法可能适用于当前情况,但可能会在您缩放舞台本身或将形状放入缩放/定位的容器中时中断。
【讨论】:
试过了,但它返回的 x 与该函数 x 的输入完全相同 @SPeed_FANat1c 对我来说它工作得很好。形状是否包裹在容器中?regX
、regY
、scaleX
和 scaleY
是舞台的值还是形状的值?我假设这些是阶段值。但也许那是错误的。如果它们是形状值,您可以在形状/图像上尝试localToGlobal
方法。但你必须这样做:shape.localToGlobal(0,0)
(如果图像内部的矩形 x 坐标为 0)。
我没有在代码类容器中看到,也不熟悉这个库的术语,但据我了解,形状处于阶段。我发布的那些值是形状值,而不是阶段。所以现在当我使用 shape.localToGLobal(0,0) 时,它与我的公式相同:) 谢谢
没问题。我编辑了答案,希望它更清楚。 ;-)【参考方案2】:
我想我通过试验值发现了什么:
distanceFromLeft = x - scaleX * regX;
所以得到 109.90793888888885 像素
如果有人对这个库进行了更多的工作,他们可以确认这不是偶然的。
【讨论】:
以上是关于CreateJs - 从左边的距离的主要内容,如果未能解决你的问题,请参考以下文章
在 animateCC 上的 createJS 中使用按钮键入文本