神奇的TextField(2)
var text_content:TextField=new TextField();
text_content.autoSize="left"; //
text_content.width=text_content.width + 1; //
text_content.x=10; //
text_content.wordWrap=true; //
text_content.multiline=true; //
text_content.text="ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd";
addChild(text_content);
上面一段代码,能看出什么问题吗?
其实运行后,在舞台上是看不到textfield的~
同样的的一段代码,分部注释每行,再进行调试,
var text_content:TextField=new TextField();
text_content.autoSize="left"; //如果单注释这句,text正常显示
text_content.width=text_content.width + 1; //如果单注释这句,舞台上看不到text
text_content.x=10; ////如果单注释这句,舞台上看不到text, 如果同时注释width x这两个属性的设置,text又正常显示
text_content.wordWrap=true; //如果单注释这句,text正常显示
text_content.multiline=true; //这句注释不注释都没影响
text_content.text="ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd";
addChild(text_content);
trace(text_content.width);
后面的注释写明了如果把这行注释掉会有什么效果。
在神奇的TextField(1)中,有提过说wordwrap autosize text对width都有决定作用。只是上面的例子都有一个特点就是,在设置wordwrap,autosize text这些属性后,就立即去读取textfield的width~
而通过这篇文章的例子可以看出,wordwrap autosize text对width都有决定作用,但都不是在设置wordwrap,autosize,text属性的时候就立即修改width属性!!
而是在获取或设置width属性时,flash通过wordwrap autosize text这些影响因素动态的计算width结果然后返回。
同样,在设置text的x,y坐标时,也flash也会计算textfield的width!!
textfield内部有一个字段(姑且称为_width),在获取textfield的width属性时,
如果需要计算(在wordwarp为false的时候),就进行计算,并用_width保存这个计算结果,之后返回_width,
如果不需要计算(在wordwarp为true的时候)就直接返回_width属性的值,但这时,_width属性并不是正确的,
因为在设置wordwrap为true以后,再修改text属性,应该是会导致width发生变化的,但实际上,textfield的width在设置wordwrap为true之后无论text是什么都不会再变了。
这样子就比较好解释上面的代码,为什么设置了width或者x属性时,stage上的textfield就看不到了。
因为在设置width或者x属性时,textfield的width就会被动态计算,示例代码中autosize为left,text为空,那么width在计算时就由初始值变成了4,而之后因为设置了wordwrap属性为true,当再设置text的时候,textfield的width并不会发生改变。所以textfield的width就一直是4,stage上就看不到这个textfield了.
wordwrap这个和类的构造函数有点类似,
当自定义了类的构造函数,系统不在为你添加默认构造函数了
当设置了wordwrap为true时,系统就默认你自定义了textfield的width(这个值就是在设置),之后在需要width属性时就不再计算了。
神奇的TextField(2)的更多相关文章
- 神奇的TextField(1)
先看一大段测试代码,每个小方法的注释行是输出结果. private var text_content:TextField; private function textFieldDemo():void{ ...
- ios设置textField只能输入数字用于电话号码
首先在.xib中将UITextField的Keyboard设置为Number Pad,但是使用时键盘会切回别的键盘无法对内容进行校验.通过神奇的百度我知道了通过以下方法可以解决这样的问题: 首先让.x ...
- 模型层字段-多表查询-神奇的双下划线查询-F,Q查询
Django ORM中常用的字段和参数 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. In ...
- BZOJ 1006 【HNOI2008】 神奇的国度
题目链接:神奇的国度 一篇论文题--神奇的弦图,神奇的MCS-- 感觉我没有什么需要多说的,这里简单介绍一下MCS: 我们给每个点记录一个权值,从后往前依次确定完美消除序列中的点,每次选择权值最大的一 ...
- 前端精选文摘:BFC 神奇背后的原理
BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等).虽然我知道如何利用 BFC 解决这些问题, ...
- TextField和TextView的限制输入长度
TextField的限制代理方法 只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 - (BOOL)textField:(UITextField *)textField s ...
- MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)
前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...
- 一行神奇的javascript代码
写本篇文章的缘由是之前群里@墨尘发了一段js代码,如下: (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~ ...
- [翻译svg教程]Path元素 svg中最神奇的元素!
先看一个实例 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999 ...
随机推荐
- Linux下的查找命令which、whereis、locate、find(6/20)
Linux下查找相关命令主要有以下4个:which.whereis.locate.find. (1)which [-a] cmdname1 cmdname2 ...... 命令参数: -n ...
- 解析库之re、beautifulsoup、pyquery
BeatifulSoup模块 一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Be ...
- css盒模型不同浏览器下解释不同 解决办法
盒子模型是css中一个重要的概念,理解了盒子模型才能更好的排版.其实盒子模型有两种,分别是 ie 盒子模型和标准 w3c 盒子模型.他们对盒子模型的解释各不相同,先来看看我们熟知的标准盒子模型: 从上 ...
- CSS3 Loading进度条加载动画特效
在线演示 本地下载
- CSV文件导入导出MySQL
使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...
- 使用redis做mysql缓存
应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...
- Spark 实现自定义对象sequenceFile方式存储,读写示例(scala编写)
package com.fuge.bigdata.datahub.analysis import java.io.{DataInput, DataOutput} import com.fuge.big ...
- Ubuntu系统Anaconda下载安装与切换源教程【转】
本文转载自:https://blog.csdn.net/qq_36268036/article/details/81517893 1. 下载安装: 这里选用国内清华大学的Tuna开源软件镜像站作为演示 ...
- Spring_管理 Bean 的生命周期
beans-cycle.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns=&quo ...
- 混合开发的大趋势之一React Native之Image (脑动理解)
文章是宝宝自己写的,你可以转走,标明哪来的就行王亟亟的大牛之路 国庆这些天要么旅游要么WOW,感觉整个人都废了.. 直接从黄种人晒成了非洲大酋长..然而还是无橙,这礼拜要做7天,昨天把单元测试的东西整 ...