为什么easeljs stage.getBounds()返回null?
问题描述:
在这个例子中:为什么easeljs stage.getBounds()返回null?
var canvas = document.getElementById("testCanvas");
var stage = new createjs.Stage(canvas);
function drawRectangle(){
var rect = new createjs.Shape();
rect.graphics.beginFill("#000").drawRect(10, 10, 100, 100);
stage.addChild(rect);
}
function drawShapes(){
drawRectangle();
\t stage.update();
}
drawShapes();
// Why does this call log null?
console.log(stage.getBounds());
<script src="https://cdnjs.cloudflare.com/ajax/libs/EaselJS/0.8.0/easeljs.min.js"></script>
<canvas id="testCanvas" width="600" height="150"></canvas>
stage.getBounds();
被返回null。为什么它返回null?根据docs,它应该返回一个表示舞台边框尺寸的矩形对象。
如果此用法不正确,则获取对象的尺寸的正确用法是什么?
答
看起来像阶段对象不能计算自己的界限。
在同一getBounds()
documentation出现以下内容:
并非所有的显示对象可以自行计算范围(如形状)。对于这些对象,您可以使用setBounds,以便在计算容器边界时包括它们。
如果是这种情况,如文档说,你可以使用setBounds()
方法(documentation)手动设置对象的范围:
setBounds(x,y,width,height)
在你的代码的情况下:
stage.setBounds(0,0,600,150); // (0,0), at the same size of the canvas
阶段应该返回边界如果a)它有像这个例子中设置的边界;或b)它具有可以计算边界的子内容(位图,精灵,文本)。它与任何容器相同。图形无法计算边界,这就是为什么您的演示不会返回阶段边界。 – Lanny