lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8876|回复: 2
打印 上一主题 下一主题

关于LTextField文本水平居中到LSprite的问题

[复制链接]

5

主题

0

好友

47

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2020-9-11 15:27:04 |只看该作者 |倒序浏览
test.jpg

role = new LSprite();
role.x = 150;
role.y = 20;
var roleLBitmapData = new LBitmapData(datalist[color], 0,0,115,47);
        var role_pic = new LBitmap(roleLBitmapData);
        role.addChild(role_pic);
        labelText = new LTextField();
        labelText.color = color;
        labelText.font = "楷体";
        labelText.size = 16;
        labelText.x = 20
        labelText.y = 4;
        labelText.text = name;
        role.addChild(labelText);

如上图 一个 115x47的 LBitmapData 添加到 LSprite中 同时 LSprite再添加一个 LTextField 如何让文本水平居中。目前是        labelText.x = 20 4个字的文本就刚好 如果是3个字就不行了




回复

使用道具 举报

37

主题

8

好友

9309

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2020-9-11 16:03:42 |只看该作者
两种方法
第一种,根据labelText的宽度,计算labelText的位置
  1. labelText.x = (role.getWidth() - labelText.getWidth())/2;
复制代码
第二种,直接把LTextField放到中间,然后让文字居中显示
  1. labelText.x = role.getWidth()/2;
  2. labelText.textAlign = 'center';
复制代码
不回答与技术和引擎不相关的问题
回复

使用道具 举报

5

主题

0

好友

47

积分

士兵

Rank: 1

板凳
发表于 2020-9-11 17:04:40 |只看该作者
lufy 发表于 2020-9-11 16:03
两种方法
第一种,根据labelText的宽度,计算labelText的位置第二种,直接把LTextField放到中间,然后让文 ...

感谢感谢,问题解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-4-19 12:22 , Processed in 0.052751 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部