Easeljs getBounds,何时设置尺寸?

Easeljs getBounds, when are dimensions set?

我正在将某人的 createjs 应用程序导入应用程序加载器,该应用程序加载器将每个开发人员应用程序 javascript 导入全局 canvas。该应用程序独立运行,但是当我动态加载 javascript 时,我在 getBounds() 函数周围出现了一些奇怪的行为。

我创建了一些这样的文本:

dialogText = new createjs.Text(text, 'bold ' + (28 * scale) + 'px Calibri', '#FFFFFF');

然后我使用 dialogText.getBounds() 其中 returns null

我尝试控制台日志记录 dialogText,我可以看到它已设置并且有一个值 _bounds,显示为 null

当元素绘制到 canvas 时,这些值在什么时候设置?

注意:我已经将文本添加到 createjs.Container() 中,它在 运行 getBounds().[ 之前设置了边界=18=]

_bounds 属性 反映了在 DisplayObject 上手动设置的值 - 如果您知道无法计算它的对象(如形状)的边界,这将很有帮助。除非您直接设置它,否则它将始终是 null

我测试了你的代码,似乎没问题。您确定 scaletext 值不为空吗?也许 hard-code 他们看看它是否有效。

你有样品吗?我在 the GitHub issue you posted 中注意到您提到它在没有 RequireJS 的情况下工作正常(尽管您在这里没有提到)。我绝对会确保正确设置这些值。

这里是fiddle, as well as a simpler one with no EaselJS stage。请注意,我的机器上安装了 Calibri,因此如果您加载它,您可能会得到不同的结果。

示例代码:

var dialogText = new createjs.Text("This is some text", 'bold ' + (28 * 1.5) + 'px Calibrix', '#FFFFFF');
console.log(">>",dialogText.getBounds());

为了快速参考,我粘贴了 EaselJS 关于 getBounds():

的更新

(这可以追溯到 "August 21, 2013",不确定现在是否仍然需要,但是使用 setBounds(x, y, w, h) 实际上今天 [2017 年] 帮助我使用 Shapes!)

来源:http://blog.createjs.com/update-width-height-in-easeljs/