使用Actionscript 3自动调整文本字段

时间:2013-12-06 15:46:30

标签: actionscript-3 textfield autosize

我不确定这是否可行,所以,请在这里帮我一点:

我将一张图片加载到舞台上:

    var miC:Loader = new Loader();
    miC.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    miC.load(new URLRequest("coverph.jpg"));

    function onComplete(e:Event):void {
        miC.width = stage.stageWidth;
        miC.height = stage.stageHeight;
        miC.x = 0;
        miC.y = 0;
        addChild(miC);
        trace(miC.width, miC.height);
    }

通过这种方式,图像自动调整大小以完全匹配屏幕分辨率(我已经尝试过:(所有在风景中)

960dp x 720dp 640dp x 480dp 470dp x 320dp 426dp x 320dp 1196dp x 720dp 和720dp x 720dp

他们都工作正常(它不会超过735)

现在,我的问题是......让我们说1196 x 720我有一个textField,一个textFormat和一个出现在屏幕顶部的传奇(作为标题):

    var fmat:TextFormat = new TextFormat();
    fmat.font = "Times New Roman";
    fmat.size = 105;
    fmat.color = "0xFF0000";

    var titulo:TextField = new TextField();
    titulo.x = 145;                   
    titulo.y = 30;
    titulo.width = 1290;
    titulo.height = 122,10;
    titulo.defaultTextFormat = fmat;
    titulo.antiAliasType = AntiAliasType.ADVANCED;
    titulo.text = "THE TITLE OF WHAT IM DOING";

    addChild(titulo);

如何根据屏幕分辨率(如果可能)自动调整textField和format的大小以保持相同的比例?

2 个答案:

答案 0 :(得分:0)

在您的应用中进行一些额外设置后,您可以根据分辨率计算x轴和y轴的缩放系数,然后设置scalexscaley TextField的属性。

参考:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#propertySummary

答案 1 :(得分:0)

尝试这样的事情......

    titulo.autoSize = "left";
    titulo.text = "THE TITLE OF WHAT IM DOING";

    var txt_holder:Sprite = new Sprite();
    txt_holder.addChild(titulo);
    stage.addChild(txt_holder);

    stage.addEventListener(Event.RESIZE, onStageResize);

function onStageResize(e:Event):void {

   txt_holder.width = stage.stageWidth * 0.8; // 80% width relative to stage
   txt_holder.scaleY = txt_holder.scaleX; // To keep aspectratio
   txt_holder.x = stage.stageWidth / 2;
   txt_holder.y = 10;   
}