首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >textBaseline在KineticJS在哪里?

textBaseline在KineticJS在哪里?
EN

Stack Overflow用户
提问于 2013-09-19 21:54:23
回答 1查看 168关注 0票数 1

我找不到说明如何在textBaseline中更改画布的KineticJS属性的教程或文档。如果你看上去像在Kinetic.Text文档中,你就不会发现任何关于“基地”的地方。任何东西,动态文本教程也没有演示它的用途。textBaseline成功进入KineticJS了吗?

我做了一个jsFiddle在这里,展示了textBaseline是如何在原始画布元素上工作的,但我无法找到在KineticJS中执行相同操作的属性。我知道文档对于KineticJS来说很粗糙;也许有一个属性,但是没有提到?

不-调整Y坐标不是一个选项,因为缩放问题。让我们把那愚蠢的东西带到关口去.

下面的代码应该使用底部基线放置,但正如您在小提琴中看到的,它使用"top“。

代码语言:javascript
复制
  var text_b = new Kinetic.Text({
    x: 25,
    y: 100.5,
    text: 'Bottom',
    fontSize: 18,
    fontFamily: 'Verdana',
    fill: 'black'
  });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 02:34:19

我认为目前还没有针对KineticJS的textBaseline解决方案。

您将不得不使用offset方法或属性。

  • Kinetic.Shape#getOffset
  • Kinetic.Shape#getOffsetX
  • Kinetic.Shape#getOffsetY
  • Kinetic.Shape#setOffset
  • Kinetic.Shape#setOffsetX
  • Kinetic.Shape#setOffsetY

例如,设置offset属性:

代码语言:javascript
复制
  var text_b = new Kinetic.Text({
    x: 25,
    y: 100.5,
    text: 'Bottom',
    fontSize: 18,
    fontFamily: 'Verdana',
    fill: 'black',
    offset: [0, 18] //Offset by full font-size
  });

  var text_m = new Kinetic.Text({
    x: 175,
    y: 100.5,
    text: 'Middle',
    fontSize: 18,
    fontFamily: 'Verdana',
    fill: 'black',
    offset: [0, 9] //Offset by half of font-size
  });

  var text_t = new Kinetic.Text({
    x: 300,
    y: 100.5,
    text: 'Top',
    fontSize: 18,
    fontFamily: 'Verdana',
    fill: 'black' //No offset, as you said the default was top alignment
  });    

在上面的示例中,我对偏移量+字体大小进行了硬编码,但是您可以根据字体和字体大小来动态地设置这些值。

JSFIDDLE注意:在我的JSFiddle中,我把舞台标度设置为0.5

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18905564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档