如何将多行文本字段(动态,以文本为中心)垂直居中放置到另一个MovieClip?

| 通常,要将实例在舞台上水平居中放置到另一个垂直中心,可以使用简单的逻辑并通过引用所涉及符号的宽度,高度,x和y坐标。 这似乎不可能就地实现,因为Textfield.height和Textfield.textHeight报告错误的值。它们带回相同的值,这些值不反映实例在舞台上的实际高度。 我制作了这个简单的示例来说明问题:http://omnom.replete.nu/fails.fla 谢谢。     
已邀请:
TextField的高度与文本本身的高度无关。 文字高度会因多种原因而变化。 一个很好的例子是字体系列和字体大小。 您需要使用文本指标来获取该信息。 这里的所有信息 [编辑] 根据您的注释,scaleTextToFitInTextField函数的最后一行应执行此操作。 您需要找到两个对象的中心并减去它们,然后加上偏移量
txt.x = cont.width/2 - txt.width/2 + cont.x
txt.y = cont.height/2 - txt.height/2 + cont.y
[编辑编辑] 同时删除这两行,因为它们现在是多余的
red.tf.x = red.mchammer.x;
red.tf.y = red.mchammer.y;
    
我可能误解了您的问题,但是如果没有,您是否尝试过这个问题?
red.tf.y = red.blue.height / 2 - red.tf.height / 2 + red.blue.y;
这会将文本字段(tf)垂直居中于蓝色框。 基本上,您将获得蓝色矩形的中心y坐标,减去文本字段的中心y坐标,然后最后添加蓝色矩形的y位置。 为了获得最佳结果,您需要定义了autoSize的文本字段,并且动画片段具有(0,0)参考点。 水平方向相同,但是具有x坐标和width参数。
red.tf.x = red.blue.width / 2 - red.tf.width / 2 + red.blue.x;
    

要回复问题请先登录注册