AS3为什么在MovieClip中编辑Textfield会抛弃所有尺寸?

时间:2014-02-08 04:36:53

标签: actionscript-3 flash textfield movieclip

我现在对AS3非常沮丧。似乎必须存在严重的问题,如何在影片剪辑中扩展内容。从舞台上看,一切似乎都很好。

在我的一个项目中,我尝试将textfield.width设置为等于其容器(movieclip) tf.width = mc.width;当然它说一切都是均匀的但是当我看到文本区域的边界时,它远远不及它所包含的影片剪辑的大小。

虽然尝试制作一个小得多的样本与你们分享帮助,但这部分有用,但尝试调整文本大小的做法完全不同。任何人都可以帮我理解这一切吗?下面的代码看似随机地开始改变一切的大小。

此外,我试图从此处遵循此代码,但在尝试更改while循环中的格式大小时却一直出现错误:Autosize text to fit the width of a button

    var square:MovieClip = new MovieClip();
    addChild(square);
    square.graphics.lineStyle(3,0x00ff00);
    square.graphics.beginFill(0x0000FF);
    square.graphics.drawRect(0,0,100,100);
    square.graphics.endFill();
    square.x = 0;
    square.y = 0;

    square.width = 200;
    square.height = 200;


    var tffSize = 400;

    var tffOr:TextFormat = new TextFormat();
    tffOr.size = tffSize;
    tffOr.align = TextFormatAlign.CENTER;




    var tf:TextField = new TextField();
    square.addChild(tf);
    tf.defaultTextFormat = tffOr;
    tf.text = "Hello";
    tf.border = true;

    tf.width = square.width;
    tf.height = square.height;


    trace(tf.textWidth);
    trace(square.width);
    while (tf.textWidth > square.width || tf.textHeight > square.height)
    {
        trace("too Big");
        newTFF();
        trace(tf.textWidth + " vs " +  square.width);
        square.width = 200;
        trace(tf.textWidth + " vs " +  square.width);
    }

    function newTFF()
    {
        tffSize = tffSize - 1;

        var tff:TextFormat = new TextFormat();
        tff.size = tffSize;
        tff.align = TextFormatAlign.CENTER;

        //tf.defaultTextFormat = tff;


        tf.setTextFormat(tff);
        tf.autoSize = "left";
    }

0 个答案:

没有答案