本文示例源代码或素材下载
这样一道题关于Flash的:Flash场景中有一个文本框,它的长和宽是已知的但是值不固定(可能是10×20也可能是462×139还有可能其他),然后我们有一个字符串长度已知但是同样不固定(可能1个字也可能562个字还可能其他)。目前我们要实现,调整字的大小使这些字要填满这个文本框,不能有滚动(字要完全显示出来)也不能空很大的空出来最好刚刚填满。
这个问题困扰了我3、4天了还是没有办法解决其中的一些问题,写下我的实现办法。
先我设想文本框和场景一样大,拖动Flash影片的时候文本框长宽自然改变,但是值也是可以通过Stage获取的。然后文本内的文字设置一个变量。现在问题就变成无论怎么拖动这个Flash,里面的自都是满满的填满了真个文本框,没有隐藏也没有太多空白。如下图
我的代码
stop();
Stage.scaleMode = “noScale”;
Stage.align = “TL”;
Stage.showMenu = false;
var i_txt:String = “其实电脑方面懂的太少其实电脑方面懂的太少其实电脑方面懂的太少”;
var t_w:Number = Stage.width-10;//减去边框霓虹灯的宽度
var t_h:Number = Stage.height-10;//减去边框霓虹灯的高度
var xn:Number = Math.ceil(Math.sqrt(i_txt.length * ((Stage.width-14) * 76) / (67 * (Stage.height-14))));//是对每行字体个数的估算,下面是对字行数的估算,问题就在这里。
var yn:Number = Math.ceil(i_txt.length/xn);
setProperty(”_root.nhd_b”, _y, Stage.height-3);//霓虹灯宽3像素,这里设置霓虹灯底部的边框
setProperty(”_root.nhd_r”, _x, Stage.width-3);//霓虹灯右边的边框
this.createTextField(”my_txt”, this.getNextHighestDepth(), 5, 5, t_w, t_h);//画出文本框
my_txt.type = “static”;
my_txt.multiline = true;
my_txt.border = true;
my_txt.wordWrap = true;
my_txt.selectable = true;
my_txt.hscroll = 0;
my_txt.text = i_txt;
var my_fmt:TextFormat = new TextFormat();
my_fmt.size = Math.floor((t_w-4)/(xn));//估算字的大小
my_fmt.color = 0xFF0000;
my_fmt.align = “left”;
my_fmt.leftMargin = 0;
my_fmt.rightMargin = 0;
my_fmt.indent = 0;
my_fmt.leading = 0;
my_fmt.letterSpacing = 0;
my_fmt.kerning = true;
my_txt.setTextFormat(my_fmt);
var sizeLis = new Object();
sizeLis.onResize = function() {
setProperty(”_root.nhd_b”, _y, Stage.height-3);
setProperty(”_root.nhd_r”, _x, Stage.width-3);
var xn:Number = Math.ceil(Math.sqrt(i_txt.length * ((Stage.width-14) * 76) / (67 * (Stage.height-14))));
var yn:Number = Math.ceil(i_txt.length/xn);
my_txt._width = Stage.width-10;
my_txt._height = Stage.height-10;
my_fmt.size = Math.floor((Stage.width-10-4)/(xn));
};
Stage.addListener(sizeLis);
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!