我不确定这是否可行,所以,请在这里帮我一点:
我将一张图片加载到舞台上:
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的大小以保持相同的比例?
答案 0 :(得分:0)
在您的应用中进行一些额外设置后,您可以根据分辨率计算x轴和y轴的缩放系数,然后设置scalex
和scaley
TextField的属性。
答案 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;
}