使用buttonMode和useHandCursor创建AS3“Textfield”

时间:2012-01-27 15:59:24

标签: actionscript-3 actionscript textfield

抱歉标题不好。想不出更好的......

我正在做一个可以从XML加载数据配置的软件。 用户可以定义TextField的最大“宽度”,TextFields是多行的,当文本不适合宽度时会发生换行。 TextFields的文本也从XML文件加载,长度是任​​意的。

因为TextField既没有buttonMode也没有useHandCursor属性,因此我创建了精灵的TextFields子项。因此,对于每个TextField,都有一个sprite作为父级。

那么真正的问题是:

(“TextFields”实际上是具有TextField作为子节点的精灵)

“TextFields”不应在其中的文本之外可点击。目前,精灵似乎延伸到TextFields的整个宽度,因此用户实际上可以从没有文本的区域中单击“TextFields”。

我“尝试”改变精灵的大小,检查AS3参考,现在我知道为什么一切都消失了。

所以我需要一个解决方案,其中“TextFields”启用了buttomMode和useHandCursor,容器应该能够切断没有文本的区域。

2 个答案:

答案 0 :(得分:1)

TextField对象具有一些默认的大小调整特征。您需要应用以下其中一项:

到这个属性:

让它形成适合你的文字。然后将它添加到一个空的Sprite中,表示Sprite也将是你文本的确切大小。

改变Sprite的大小是错误的方法,因为在这种情况下你实际做的是扩展其内部内容。精灵自动调整大小以适应它们包含的对象。只要您确定TextField的大小正确,父Sprite的大小也会正确。

答案 1 :(得分:0)

我相信你不再需要它,但有人可能会这样做,所以在这里。

因为你有一个精灵作为父母,你可以让他使鼠标成为可爱的孩子。

yourSprite.tf.text = 'something';
yourSprite.buttonMode = true;
yourSprite.mouseChildren = false;