首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不拉伸文本的情况下更改TextField的宽度?

如何在不拉伸文本的情况下更改TextField的宽度?
EN

Stack Overflow用户
提问于 2012-02-25 15:14:50
回答 5查看 5.9K关注 0票数 0

我曾经知道如何做到这一点,所以,我知道这是可能的,但我不能再弄明白了。我通过设置TextField属性来改变宽度,但这会扭曲文本。我想改变文本字段的宽度而不改变字体的外观(很明显)。我相信这与autoText或类似的愚蠢行为有关(我为什么要篡改我的文本?!)但我就是想不起来。

myField.width = 100;//如果原始宽度为50,则只是将字段拉伸到100,而不是添加50个像素来绘制字符。

提亚

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-26 02:46:14

我猜你的问题是TextField.defaultTextFormat。

只需设置一个TextFormat对象,然后在您的文本字段上设置默认文本格式,无论您对它做什么,它都应该保持文本格式。

您可以看到,当您对文本字段进行几乎任何更改时,文本格式都会被重置,并且您必须重新应用它。但是,如果您设置了默认文本格式,它将自动处理此问题。

这是一个肮脏的小原型。

代码语言:javascript
运行
复制
package src 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFormat;

    public class Main extends Sprite 
    {
        private var tx:TextField;
        private var txf:TextFormat;

        public function Main() 
        {
            addEventListener(Event.ADDED_TO_STAGE, initMain);
        }

        private function initMain(e:Event):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, initMain);

            // setup a text format so you can keep your text the same all the time.
            txf = new TextFormat('Arial', 12, 0x000000);

            tx = new TextField();
            tx.width = 50;
            tx.text = "I want this text not to wrap so it will be resized at runtime."

            // Turned this on for testing purposes only.
            tx.wordWrap = true;

            tx.defaultTextFormat = txf;     // This line is the x factor most likely.

            tx.x = 100;
            tx.y = 100;

            addChild(tx);

            stage.addEventListener(MouseEvent.CLICK, toggleTextFieldSize, false, 0 ,true);
        }

        private function toggleTextFieldSize(e:MouseEvent):void 
        {
            if (tx.width == 50)
            {
                tx.width = 400;
            }
            else
            {
                tx.width = 50;
            }
        }

    }

}

希望这就是你要找的。

票数 1
EN

Stack Overflow用户

发布于 2012-02-25 16:11:40

在IDE中,需要执行以下操作

a)双击文本字段。这将使您进入文本字段的编辑模式。然后调整它的大小。

b)选择文本工具,然后调整其大小。

使用变换工具调整它的大小会增加宽度,就像它是一个形状一样(这在一些动画中非常有用,所以它并不是那么愚蠢)

票数 2
EN

Stack Overflow用户

发布于 2012-02-25 15:32:21

您在IDE中,对吗?尝试双击文本字段,然后使用文本字段右侧的框来调整整个内容的大小,而不会在文本上划线。

**编辑**

下面是一个代码示例,演示了如何调整TextField的大小:

http://wonderfl.net/c/qbDv

但这只适用于dynamic TextFields。使用代码创建的TF既可以是动态的,也可以是输入的,但在集成开发环境中,您可以创建静态的TF,这些TF不能通过ActionScript调整大小。因此,您必须更改TextField的类型或通过脚本创建TF。

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

https://stackoverflow.com/questions/9442114

复制
相关文章

相似问题

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