在画框中居中放置一个矩形文字
问题描述:
我是easelJS的新手。我想创建一个矩形,然后我想在输入框中键入文本。这里是我的代码在画框中居中放置一个矩形文字
function init() {
var stage = new createjs.Stage("canvas");
var layoutWidth = 0.8 * stage.canvas.width;
var layoutHeight = 0.6 * stage.canvas.height;
var layoutRect = new createjs.Shape();
layoutRect.graphics.beginStroke("black").drawRect((stage.canvas.width - layoutWidth)/2, (stage.canvas.height - layoutHeight)/2, layoutWidth, layoutHeight);
var button1 = new createjs.Shape();
button1.graphics.beginStroke("black").drawRect((stage.canvas.width - layoutWidth)/2, (stage.canvas.height - layoutHeight)/2 + 0.90 * layoutHeight, layoutWidth/2, 0.10 * layoutHeight);
var button2 = new createjs.Shape();
button2.graphics.beginStroke("black").drawRect((stage.canvas.width - layoutWidth)/2 + layoutWidth/2, (stage.canvas.height - layoutHeight)/2 + 0.90 * layoutHeight, layoutWidth/2, 0.10 * layoutHeight)
var inputText = document.getElementById("input") ;
var text = new createjs.Text();
text.set({
text: inputText.value
})
stage.addChild(layoutRect, button1, button2,text);
stage.update();
inputText.onkeyup = function(){
text.set({
text: inputText.value
})
stage.update()
}
}
我想这个文本出现在button1里面,并正确对齐在中心。请解释如何做到这一点。谢谢
答
的几个注意事项:
我建议在做画的按钮,[0,0],然后移动,而不是画,你希望他们在屏幕上的内容呢,。
button.graphics.beginStroke("black").drawRect(0, 0, buttonWidth, buttonHeight);
包裹的容器内的图形和标签,并作出“Button1的”,而不是,那么移动的容器,你希望它同时调整图形和标签
var button1 = new createjs.Container();
var bg1 = new createjs.Shape();
var text = new createjs.Text();
button1.addChild(bg1, text);
使用textAlign
和textBaseline
(都是HTML画布上下文属性)从中心绘制文本。然后,您可以将其设置为x
和y
位置为按钮宽度的一半。
text.set({
textAlign: "center",
textBaseline: "middle",
x: buttonWidth/2,
y: buttonHeight/2
})
您还可以测量和定位顶级左对齐与getBounds()
法文本,但居中会更容易,因为你不必去改变它的文本发生变化时。
我做了一个秒杀来证明这一点。 http://jsfiddle.net/lannymcnie/cb5tbx5t/
干杯。
谢谢。我有另一个疑问。如果我想在button1中放置一个图像,使它占据button1,该怎么做?我无法设置图像的宽度和高度。 –
您可以将其添加为Container的子项,就像文本一样。要缩放图像,请使用'scaleX'和'scaleY'设置器。阅读更多信息:http://blog.createjs.com/update-width-height-in-easeljs/ – Lanny