Easeljs getBounds,尺寸何时设定?

时间:2017-02-06 13:07:14

标签: createjs easeljs

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

我有一些像这样的文字:

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

然后我使用dialogText.getBounds()返回null

我尝试使用控制台记录dialogText,我可以看到它已设置,并且有一个值为_bounds的值null

当绘制到画布中的元素时,这些值会在什么时候设置?

注意:在运行createjs.Container()之前,我已经将文本添加到设置了其边界的getBounds()

2 个答案:

答案 0 :(得分:1)

_bounds属性反映了在DisplayObject上手动设置的值 - 如果您知道无法计算它的边界(如Shape),这将非常有用。除非您直接设置,否则它始终为null

我测试了你的代码,看起来很好。您确定scaletext值不为空吗?也许硬编码他们看看它是否有效。

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

以下是fiddle以及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());

答案 1 :(得分:1)

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

enter image description here

这可以追溯到" 2013年8月21日",现在还不确定这是否仍然有必要,但使用 setBounds(x,y,w,h) [2017年]实际上帮助我了Shapes!

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